public ConceptObjectBaseCore(IConceptObject concept,
				ICodelistObjectBase representation0) : base(concept) {
			this._representation = representation0;
			if (concept.CoreRepresentation != null) {
				this._textFormat = concept.CoreRepresentation.TextFormat;
			}
			this._builtFrom = concept;
		}
		public ComponentObjectBaseCore(Org.Sdmxsource.Sdmx.Api.Model.Objects.Base.IComponent componentBean,
				ICodelistObjectBase codeListBean1, IConceptObjectBase conceptSuperBean2) : base(componentBean) {
			this.Icomponent = componentBean;
			this.Icodelist = codeListBean1;
			if (codeListBean1 == null) {
				this.Icodelist = conceptSuperBean2.CoreRepresentation;
			}
			this.IconceptSuper = conceptSuperBean2;
		}
        /// <summary>
        /// Returns the size of the longest code contained in the CodeList.
        ///   Zero will be returned if there are no codes in the CodeList.
        /// </summary>
        /// <param name="codelistObject">CodeList object
        /// </param>
        /// <returns>
        /// The size of the longest code or zero. 
        /// </returns>
        public static int DetermineMaxCodeLength(ICodelistObjectBase codelistObject)
        {
            IList<ICodeObjectBase> codes = codelistObject.Codes;
            int longestCodeLength = 0;
            foreach (ICodeObjectBase codeObjectBase in codes)
            {
                longestCodeLength = Math.Max(DetermineMaxCodeLength(codeObjectBase), longestCodeLength);
            }

            return longestCodeLength;
        }
		public DimensionObjectBaseCore(IDimension dimension,
				ICodelistObjectBase codeList, IConceptObjectBase concept,
				ISet<IHierarchicalCodelistObjectBase> hcls0) : base(dimension, codeList, concept) {
			this._dimension = dimension;
			this._isFrequenyDimension = dimension.FrequencyDimension;
			this._isMeasureDimension = dimension.MeasureDimension;
			this._isTimeDimension = dimension.TimeDimension;
	
			this._hcls = hcls0;
			if (hcls0 == null) {
				this._hcls = new HashSet<IHierarchicalCodelistObjectBase>();
			}
			if (concept == null) {
				throw new ModelException(Org.Sdmxsource.Sdmx.Api.Constants.ExceptionCode.JavaRequiredObjectNull,
						typeof(IConceptObjectBase).FullName);
			}
		}
		public PrimaryMeasureObjectBaseCore(IPrimaryMeasure primaryMeasure,
				ICodelistObjectBase codelist, IConceptObjectBase conceptSuper) : base(primaryMeasure, codelist, conceptSuper) {
		}
	    /// <summary>
        /// Remove the given ICategorySchemeObjectBase from this container, do nothing if it is not in this container
        /// </summary>
        /// <param name="codelistObject">codelist Object </param>
	    public void RemoveCodelist(ICodelistObjectBase codelistObject)
        {
		    this._codelists.Remove(codelistObject);
	    }
        /// <summary>
        /// Add a ICodelistObjectBase to this container, overwrite if one already exists with the same URN
        /// </summary>
        /// <param name="codelistObject">Codelist object. </param>
	    public void AddCodelist(ICodelistObjectBase codelistObject)
        {
		    if(codelistObject != null)
            {
			    this._codelists.Remove(codelistObject);
			    this._codelists.Add(codelistObject);
		    }
	    }
		public AttributeObjectBaseCore(IAttribute attributeBean,
				ICodelistObjectBase codeList, IConceptObjectBase concept) : base(attributeBean, codeList, concept) {
			this._attribute = attributeBean;
		}
		public DimensionObjectBaseCore(IDimension dimension,
				ICodelistObjectBase codeList, IConceptObjectBase concept) : this(dimension, codeList, concept, null) {
			this._dimension = dimension;
		}