All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.umlg.concretetest.Universe Maven / Gradle / Ivy

The newest version!
package org.umlg.concretetest;

import com.fasterxml.jackson.databind.ObjectMapper;

import java.lang.reflect.Constructor;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.commons.text.StringEscapeUtils;
import org.apache.tinkerpop.gremlin.structure.Vertex;
import org.umlg.componenttest.SpaceTime;
import org.umlg.componenttest.SpaceTime.SpaceTimeRuntimePropertyEnum;
import org.umlg.concretetest.Angel.AngelRuntimePropertyEnum;
import org.umlg.concretetest.Demon.DemonRuntimePropertyEnum;
import org.umlg.navigability.NonNavigableMany;
import org.umlg.navigability.NonNavigableMany.NonNavigableManyRuntimePropertyEnum;
import org.umlg.navigability.NonNavigableOne;
import org.umlg.navigability.NonNavigableOne.NonNavigableOneRuntimePropertyEnum;
import org.umlg.query.BaseUmlgWithQuery;
import org.umlg.runtime.adaptor.UMLG;
import org.umlg.runtime.adaptor.UmlgLabelConverterFactory;
import org.umlg.runtime.adaptor.UmlgSchemaFactory;
import org.umlg.runtime.adaptor.UmlgTmpIdManager;
import org.umlg.runtime.collection.Filter;
import org.umlg.runtime.collection.Qualifier;
import org.umlg.runtime.collection.UmlgCollection;
import org.umlg.runtime.collection.UmlgRuntimeProperty;
import org.umlg.runtime.collection.UmlgSet;
import org.umlg.runtime.collection.memory.UmlgMemorySet;
import org.umlg.runtime.collection.persistent.PropertyTree;
import org.umlg.runtime.collection.persistent.UmlgSetImpl;
import org.umlg.runtime.domain.CompositionNode;
import org.umlg.runtime.domain.DataTypeEnum;
import org.umlg.runtime.domain.UmlgNode;
import org.umlg.runtime.domain.json.ToJsonUtil;
import org.umlg.runtime.util.ObjectMapperFactory;
import org.umlg.runtime.util.UmlgFormatter;
import org.umlg.runtime.validation.DateTimeValidation;
import org.umlg.runtime.validation.Email;
import org.umlg.runtime.validation.MaxInteger;
import org.umlg.runtime.validation.MaxLength;
import org.umlg.runtime.validation.MinInteger;
import org.umlg.runtime.validation.MinLength;
import org.umlg.runtime.validation.RangeInteger;
import org.umlg.runtime.validation.RangeLength;
import org.umlg.runtime.validation.UmlgConstraintViolation;
import org.umlg.runtime.validation.UmlgConstraintViolationException;
import org.umlg.runtime.validation.UmlgValidation;
import org.umlg.runtime.validation.UmlgValidator;
import org.umlg.tag.Tag;

public class Universe extends BaseUmlgWithQuery implements CompositionNode {
	static final public long serialVersionUID = 1L;
	private UmlgSet name;
	private UmlgSet spaceTime;
	private UmlgSet testMinLength;
	private UmlgSet maxLength;
	private UmlgSet rangeLength;
	private UmlgSet min;
	private UmlgSet max;
	private UmlgSet range;
	private UmlgSet email;
	private UmlgSet god;
	private UmlgSet angel;
	private UmlgSet demon;
	private UmlgSet nonNavigableOne;
	private UmlgSet nonNavigableMany;

	/**
	 * constructor for Universe
	 * 
	 * @param compositeOwner 
	 */
	public Universe(God compositeOwner)  {
		super(true);
		compositeOwner.addToUniverse(this);
	}
	
	/**
	 * constructor for Universe
	 * 
	 * @param id 
	 */
	public Universe(Object id)  {
		super(id);
	}
	
	/**
	 * constructor for Universe
	 * 
	 * @param vertex 
	 */
	public Universe(Vertex vertex)  {
		super(vertex);
	}
	
	/**
	 * default constructor for Universe
	 */
	public Universe()  {
		this(true);
	}
	
	/**
	 * constructor for Universe
	 * 
	 * @param persistent 
	 */
	public Universe(Boolean persistent)  {
		super(persistent);
	}

	public void addToAngel(Angel angel) {
		if ( angel != null ) {
			if ( !this.angel.isEmpty() ) {
				throw new RuntimeException("Property umlgtest::org::umlg::concretetest::A__::angel is a one and already has a value!");
			}
			this.angel.add(angel);
		}
	}
	
	public void addToAngelIgnoreInverse(Angel angel) {
		if ( angel != null ) {
			if ( !this.angel.isEmpty() ) {
				throw new RuntimeException("Property umlgtest::org::umlg::concretetest::A__::angel is a one and already has a value!");
			}
			this.angel.addIgnoreInverse(angel);
		}
	}
	
	public void addToDemon(Demon demon) {
		if ( demon != null ) {
			demon.clearUniverse();
			demon.initialiseProperty(DemonRuntimePropertyEnum.universe, false, true);
			removeFromDemon(demon);
		}
		if ( demon != null ) {
			this.demon.add(demon);
		}
	}
	
	public void addToDemon(UmlgSet demon) {
		if ( !demon.isEmpty() ) {
			this.demon.addAll(demon);
		}
	}
	
	public void addToDemonIgnoreInverse(Demon demon) {
		if ( demon != null ) {
			demon.clearUniverse();
			demon.initialiseProperty(DemonRuntimePropertyEnum.universe, false, true);
			removeFromDemon(demon);
		}
		if ( demon != null ) {
			this.demon.addIgnoreInverse(demon);
		}
	}
	
	public void addToEmail(String email) {
		if ( !this.email.isEmpty() ) {
			throw new RuntimeException("Property is a one and already has value, first clear it before adding!");
		}
		if ( email != null ) {
			List violations = validateEmail(email);
			if ( violations.isEmpty() ) {
				this.email.add(email);
			} else {
				throw new UmlgConstraintViolationException(violations);
			}
		}
	}
	
	public void addToEmailIgnoreInverse(String email) {
		if ( !this.email.isEmpty() ) {
			throw new RuntimeException("Property is a one and already has value, first clear it before adding!");
		}
		if ( email != null ) {
			List violations = validateEmail(email);
			if ( violations.isEmpty() ) {
				this.email.add(email);
			} else {
				throw new UmlgConstraintViolationException(violations);
			}
		}
	}
	
	public void addToGod(God god) {
		if ( god != null ) {
			if ( !this.god.isEmpty() ) {
				throw new RuntimeException("Property umlgtest::org::umlg::concretetest::A__::god is a one and already has a value!");
			}
			this.god.add(god);
		}
	}
	
	public void addToGodIgnoreInverse(God god) {
		if ( god != null ) {
			if ( !this.god.isEmpty() ) {
				throw new RuntimeException("Property umlgtest::org::umlg::concretetest::A__::god is a one and already has a value!");
			}
			this.god.addIgnoreInverse(god);
		}
	}
	
	public void addToMax(Integer max) {
		if ( !this.max.isEmpty() ) {
			throw new RuntimeException("Property is a one and already has value, first clear it before adding!");
		}
		if ( max != null ) {
			List violations = validateMax(max);
			if ( violations.isEmpty() ) {
				this.max.add(max);
			} else {
				throw new UmlgConstraintViolationException(violations);
			}
		}
	}
	
	public void addToMaxIgnoreInverse(Integer max) {
		if ( !this.max.isEmpty() ) {
			throw new RuntimeException("Property is a one and already has value, first clear it before adding!");
		}
		if ( max != null ) {
			List violations = validateMax(max);
			if ( violations.isEmpty() ) {
				this.max.add(max);
			} else {
				throw new UmlgConstraintViolationException(violations);
			}
		}
	}
	
	public void addToMaxLength(String maxLength) {
		if ( !this.maxLength.isEmpty() ) {
			throw new RuntimeException("Property is a one and already has value, first clear it before adding!");
		}
		if ( maxLength != null ) {
			List violations = validateMaxLength(maxLength);
			if ( violations.isEmpty() ) {
				this.maxLength.add(maxLength);
			} else {
				throw new UmlgConstraintViolationException(violations);
			}
		}
	}
	
	public void addToMaxLengthIgnoreInverse(String maxLength) {
		if ( !this.maxLength.isEmpty() ) {
			throw new RuntimeException("Property is a one and already has value, first clear it before adding!");
		}
		if ( maxLength != null ) {
			List violations = validateMaxLength(maxLength);
			if ( violations.isEmpty() ) {
				this.maxLength.add(maxLength);
			} else {
				throw new UmlgConstraintViolationException(violations);
			}
		}
	}
	
	public void addToMin(Integer min) {
		if ( !this.min.isEmpty() ) {
			throw new RuntimeException("Property is a one and already has value, first clear it before adding!");
		}
		if ( min != null ) {
			List violations = validateMin(min);
			if ( violations.isEmpty() ) {
				this.min.add(min);
			} else {
				throw new UmlgConstraintViolationException(violations);
			}
		}
	}
	
	public void addToMinIgnoreInverse(Integer min) {
		if ( !this.min.isEmpty() ) {
			throw new RuntimeException("Property is a one and already has value, first clear it before adding!");
		}
		if ( min != null ) {
			List violations = validateMin(min);
			if ( violations.isEmpty() ) {
				this.min.add(min);
			} else {
				throw new UmlgConstraintViolationException(violations);
			}
		}
	}
	
	public void addToName(String name) {
		if ( !this.name.isEmpty() ) {
			throw new RuntimeException("Property is a one and already has value, first clear it before adding!");
		}
		if ( name != null ) {
			List violations = validateName(name);
			if ( violations.isEmpty() ) {
				this.name.add(name);
			} else {
				throw new UmlgConstraintViolationException(violations);
			}
		}
	}
	
	public void addToNameIgnoreInverse(String name) {
		if ( !this.name.isEmpty() ) {
			throw new RuntimeException("Property is a one and already has value, first clear it before adding!");
		}
		if ( name != null ) {
			List violations = validateName(name);
			if ( violations.isEmpty() ) {
				this.name.add(name);
			} else {
				throw new UmlgConstraintViolationException(violations);
			}
		}
	}
	
	public void addToNonNavigableMany(NonNavigableMany nonNavigableMany) {
		if ( nonNavigableMany != null ) {
			nonNavigableMany.clearUniverse();
			nonNavigableMany.initialiseProperty(NonNavigableManyRuntimePropertyEnum.universe, false, true);
			removeFromNonNavigableMany(nonNavigableMany);
		}
		if ( nonNavigableMany != null ) {
			this.nonNavigableMany.add(nonNavigableMany);
		}
	}
	
	public void addToNonNavigableMany(UmlgSet nonNavigableMany) {
		if ( !nonNavigableMany.isEmpty() ) {
			this.nonNavigableMany.addAll(nonNavigableMany);
		}
	}
	
	public void addToNonNavigableManyIgnoreInverse(NonNavigableMany nonNavigableMany) {
		if ( nonNavigableMany != null ) {
			nonNavigableMany.clearUniverse();
			nonNavigableMany.initialiseProperty(NonNavigableManyRuntimePropertyEnum.universe, false, true);
			removeFromNonNavigableMany(nonNavigableMany);
		}
		if ( nonNavigableMany != null ) {
			this.nonNavigableMany.addIgnoreInverse(nonNavigableMany);
		}
	}
	
	public void addToNonNavigableOne(NonNavigableOne nonNavigableOne) {
		if ( nonNavigableOne != null ) {
			if ( !this.nonNavigableOne.isEmpty() ) {
				throw new RuntimeException("Property umlgtest::org::umlg::navigability::A__::nonNavigableOne is a one and already has a value!");
			}
			this.nonNavigableOne.add(nonNavigableOne);
		}
	}
	
	public void addToNonNavigableOneIgnoreInverse(NonNavigableOne nonNavigableOne) {
		if ( nonNavigableOne != null ) {
			if ( !this.nonNavigableOne.isEmpty() ) {
				throw new RuntimeException("Property umlgtest::org::umlg::navigability::A__::nonNavigableOne is a one and already has a value!");
			}
			this.nonNavigableOne.addIgnoreInverse(nonNavigableOne);
		}
	}
	
	public void addToRange(Integer range) {
		if ( !this.range.isEmpty() ) {
			throw new RuntimeException("Property is a one and already has value, first clear it before adding!");
		}
		if ( range != null ) {
			List violations = validateRange(range);
			if ( violations.isEmpty() ) {
				this.range.add(range);
			} else {
				throw new UmlgConstraintViolationException(violations);
			}
		}
	}
	
	public void addToRangeIgnoreInverse(Integer range) {
		if ( !this.range.isEmpty() ) {
			throw new RuntimeException("Property is a one and already has value, first clear it before adding!");
		}
		if ( range != null ) {
			List violations = validateRange(range);
			if ( violations.isEmpty() ) {
				this.range.add(range);
			} else {
				throw new UmlgConstraintViolationException(violations);
			}
		}
	}
	
	public void addToRangeLength(String rangeLength) {
		if ( !this.rangeLength.isEmpty() ) {
			throw new RuntimeException("Property is a one and already has value, first clear it before adding!");
		}
		if ( rangeLength != null ) {
			List violations = validateRangeLength(rangeLength);
			if ( violations.isEmpty() ) {
				this.rangeLength.add(rangeLength);
			} else {
				throw new UmlgConstraintViolationException(violations);
			}
		}
	}
	
	public void addToRangeLengthIgnoreInverse(String rangeLength) {
		if ( !this.rangeLength.isEmpty() ) {
			throw new RuntimeException("Property is a one and already has value, first clear it before adding!");
		}
		if ( rangeLength != null ) {
			List violations = validateRangeLength(rangeLength);
			if ( violations.isEmpty() ) {
				this.rangeLength.add(rangeLength);
			} else {
				throw new UmlgConstraintViolationException(violations);
			}
		}
	}
	
	public void addToSpaceTime(SpaceTime spaceTime) {
		if ( spaceTime != null ) {
			if ( !this.spaceTime.isEmpty() ) {
				throw new RuntimeException("Property umlgtest::org::umlg::concretetest::Universe::spaceTime is a one and already has a value!");
			}
			this.spaceTime.add(spaceTime);
		}
	}
	
	public void addToSpaceTimeIgnoreInverse(SpaceTime spaceTime) {
		if ( spaceTime != null ) {
			if ( !this.spaceTime.isEmpty() ) {
				throw new RuntimeException("Property umlgtest::org::umlg::concretetest::Universe::spaceTime is a one and already has a value!");
			}
			this.spaceTime.addIgnoreInverse(spaceTime);
		}
	}
	
	public void addToTestMinLength(String testMinLength) {
		if ( !this.testMinLength.isEmpty() ) {
			throw new RuntimeException("Property is a one and already has value, first clear it before adding!");
		}
		if ( testMinLength != null ) {
			List violations = validateTestMinLength(testMinLength);
			if ( violations.isEmpty() ) {
				this.testMinLength.add(testMinLength);
			} else {
				throw new UmlgConstraintViolationException(violations);
			}
		}
	}
	
	public void addToTestMinLengthIgnoreInverse(String testMinLength) {
		if ( !this.testMinLength.isEmpty() ) {
			throw new RuntimeException("Property is a one and already has value, first clear it before adding!");
		}
		if ( testMinLength != null ) {
			List violations = validateTestMinLength(testMinLength);
			if ( violations.isEmpty() ) {
				this.testMinLength.add(testMinLength);
			} else {
				throw new UmlgConstraintViolationException(violations);
			}
		}
	}
	
	static public UmlgSet allInstances(Filter filter) {
		UmlgSet result = new UmlgMemorySet();
		result.addAll(UMLG.get().allInstances(Universe.class.getName(), filter));
		return result;
	}
	
	static public UmlgSet allInstances() {
		UmlgSet result = new UmlgMemorySet();
		result.addAll(UMLG.get().allInstances(Universe.class.getName()));
		return result;
	}
	
	@Override
	public List checkClassConstraints() {
		List result = new ArrayList();
		result.addAll(super.checkClassConstraints());
		return result;
	}
	
	public void clearAngel() {
		this.angel.clear();
	}
	
	public void clearDemon() {
		this.demon.clear();
	}
	
	public void clearEmail() {
		this.email.clear();
	}
	
	public void clearGod() {
		this.god.clear();
	}
	
	public void clearMax() {
		this.max.clear();
	}
	
	public void clearMaxLength() {
		this.maxLength.clear();
	}
	
	public void clearMin() {
		this.min.clear();
	}
	
	public void clearName() {
		this.name.clear();
	}
	
	public void clearNonNavigableMany() {
		this.nonNavigableMany.clear();
	}
	
	public void clearNonNavigableOne() {
		this.nonNavigableOne.clear();
	}
	
	public void clearRange() {
		this.range.clear();
	}
	
	public void clearRangeLength() {
		this.rangeLength.clear();
	}
	
	public void clearSpaceTime() {
		this.spaceTime.clear();
	}
	
	public void clearTestMinLength() {
		this.testMinLength.clear();
	}
	
	@Override
	public void delete() {
		if ( getSpaceTime() != null ) {
			getSpaceTime().delete();
		}
		this.god.clear();
		this.nonNavigableMany.clear();
		this.nonNavigableOne.clear();
		this.angel.clear();
		this.email.clear();
		this.demon.clear();
		super.delete();
	}
	
	@Override
	public void fromJson(Map propertyMap) {
		fromJsonDataTypeAndComposite(propertyMap);
		fromJsonNonCompositeOne(propertyMap);
		fromJsonNonCompositeRequiredMany(propertyMap);
	}
	
	@Override
	public void fromJson(String json) {
		ObjectMapper mapper = ObjectMapperFactory.INSTANCE.getObjectMapper();
		try {
			@SuppressWarnings(	"unchecked")
			 Map propertyMap = mapper.readValue(json, Map.class);
			fromJson(propertyMap);
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}
	
	@SuppressWarnings(	"unchecked")
	@Override
	public void fromJsonDataTypeAndComposite(Map propertyMap) {
		Number rangeAsNumber = (Number)propertyMap.get("range");
		Number minAsNumber = (Number)propertyMap.get("min");
		Number maxAsNumber = (Number)propertyMap.get("max");
		super.fromJsonDataTypeAndComposite(propertyMap);
		if ( propertyMap.containsKey("spaceTime") ) {
			if ( propertyMap.get("spaceTime") != null ) {
				Map spaceTimeMap = (Map)propertyMap.get("spaceTime");
				SpaceTime spaceTime;
				String idField = (String)spaceTimeMap.get("id");
				if ( idField != null && !idField.startsWith("fake") ) {
					spaceTime = UMLG.get().getEntity((spaceTimeMap.get("id")));
				} else {
					Class baseTumlClass = UmlgSchemaFactory.getUmlgSchemaMap().get((String)spaceTimeMap.get("qualifiedName"));
					try {
						Constructor constructor = baseTumlClass.getConstructor(Boolean.class);
						spaceTime = constructor.newInstance(true);
						setSpaceTime(spaceTime);
					} catch (Exception e) {
						throw new RuntimeException(e);
					}
				}
				spaceTime.fromJsonDataTypeAndComposite(spaceTimeMap);
			} else {
				setSpaceTime(null);
			}
		}
		if ( propertyMap.containsKey("rangeLength") ) {
			if ( propertyMap.get("rangeLength") != null ) {
				String rangeLength = (String)propertyMap.get("rangeLength");
				setRangeLength(rangeLength);
			} else {
				setRangeLength(null);
			}
		}
		if ( propertyMap.containsKey("range") ) {
			if ( propertyMap.get("range") != null ) {
				Integer range = rangeAsNumber != null ? rangeAsNumber.intValue() : null;
				setRange(range);
			} else {
				setRange(null);
			}
		}
		if ( propertyMap.containsKey("name") ) {
			if ( propertyMap.get("name") != null ) {
				String name = (String)propertyMap.get("name");
				setName(name);
			} else {
				setName(null);
			}
		}
		if ( propertyMap.containsKey("maxLength") ) {
			if ( propertyMap.get("maxLength") != null ) {
				String maxLength = (String)propertyMap.get("maxLength");
				setMaxLength(maxLength);
			} else {
				setMaxLength(null);
			}
		}
		if ( propertyMap.containsKey("testMinLength") ) {
			if ( propertyMap.get("testMinLength") != null ) {
				String testMinLength = (String)propertyMap.get("testMinLength");
				setTestMinLength(testMinLength);
			} else {
				setTestMinLength(null);
			}
		}
		if ( propertyMap.containsKey("min") ) {
			if ( propertyMap.get("min") != null ) {
				Integer min = minAsNumber != null ? minAsNumber.intValue() : null;
				setMin(min);
			} else {
				setMin(null);
			}
		}
		if ( propertyMap.containsKey("email") ) {
			if ( propertyMap.get("email") != null ) {
				String email = (java.lang.String)propertyMap.get("email");
				setEmail(email);
			} else {
				setEmail(null);
			}
		}
		if ( propertyMap.containsKey("max") ) {
			if ( propertyMap.get("max") != null ) {
				Integer max = maxAsNumber != null ? maxAsNumber.intValue() : null;
				setMax(max);
			} else {
				setMax(null);
			}
		}
	}
	
	@SuppressWarnings(	"unchecked")
	@Override
	public void fromJsonNonCompositeOne(Map propertyMap) {
		super.fromJsonNonCompositeOne(propertyMap);
		if ( propertyMap.containsKey("spaceTime") ) {
			if ( propertyMap.get("spaceTime") != null ) {
				Map spaceTimeMap = (Map)propertyMap.get("spaceTime");
				SpaceTime spaceTime;
				if ( spaceTimeMap.get("id") != null ) {
					spaceTime = UMLG.get().getEntity((spaceTimeMap.get("id")));
				} else {
					Class baseTumlClass = UmlgSchemaFactory.getUmlgSchemaMap().get((String)spaceTimeMap.get("qualifiedName"));
					try {
						Constructor constructor = baseTumlClass.getConstructor(Boolean.class);
						spaceTime = constructor.newInstance(true);
						setSpaceTime(spaceTime);
					} catch (Exception e) {
						throw new RuntimeException(e);
					}
				}
				spaceTime.fromJsonNonCompositeOne(spaceTimeMap);
			} else {
				setSpaceTime(null);
			}
		}
		if ( propertyMap.containsKey("nonNavigableOne") ) {
			if ( propertyMap.get("nonNavigableOne") != null ) {
				Map nonNavigableOneMap = (Map)propertyMap.get("nonNavigableOne");
				if ( nonNavigableOneMap.isEmpty() || nonNavigableOneMap.get("id") == null ) {
					setNonNavigableOne(null);
				} else {
					setNonNavigableOne((NonNavigableOne)UMLG.get().getEntity((nonNavigableOneMap.get("id"))));
				}
			} else {
				setNonNavigableOne(null);
			}
		}
		if ( propertyMap.containsKey("angel") ) {
			if ( propertyMap.get("angel") != null ) {
				Map angelMap = (Map)propertyMap.get("angel");
				if ( angelMap.isEmpty() || angelMap.get("id") == null ) {
					setAngel(null);
				} else {
					setAngel((Angel)UMLG.get().getEntity((angelMap.get("id"))));
				}
			} else {
				setAngel(null);
			}
		}
	}
	
	@Override
	public void fromJsonNonCompositeRequiredMany(Map propertyMap) {
		super.fromJsonNonCompositeRequiredMany(propertyMap);
	}
	
	public Angel getAngel() {
		UmlgSet tmp = this.angel;
		if ( !tmp.isEmpty() ) {
			return tmp.iterator().next();
		} else {
			return null;
		}
	}
	
	public UmlgSet getDemon() {
		return this.demon;
	}
	
	public String getEmail() {
		UmlgSet tmp = this.email;
		if ( !tmp.isEmpty() ) {
			return tmp.iterator().next();
		} else {
			return null;
		}
	}
	
	public God getGod() {
		UmlgSet tmp = this.god;
		if ( !tmp.isEmpty() ) {
			return tmp.iterator().next();
		} else {
			return null;
		}
	}
	
	public Integer getMax() {
		UmlgSet tmp = this.max;
		if ( !tmp.isEmpty() ) {
			return tmp.iterator().next();
		} else {
			return null;
		}
	}
	
	public String getMaxLength() {
		UmlgSet tmp = this.maxLength;
		if ( !tmp.isEmpty() ) {
			return tmp.iterator().next();
		} else {
			return null;
		}
	}
	
	@Override
	public String getMetaDataAsJson() {
		return Universe.UniverseRuntimePropertyEnum.asJson();
	}
	
	public Integer getMin() {
		UmlgSet tmp = this.min;
		if ( !tmp.isEmpty() ) {
			return tmp.iterator().next();
		} else {
			return null;
		}
	}
	
	public String getName() {
		UmlgSet tmp = this.name;
		if ( !tmp.isEmpty() ) {
			return tmp.iterator().next();
		} else {
			return null;
		}
	}
	
	public UmlgSet getNonNavigableMany() {
		return this.nonNavigableMany;
	}
	
	public NonNavigableOne getNonNavigableOne() {
		UmlgSet tmp = this.nonNavigableOne;
		if ( !tmp.isEmpty() ) {
			return tmp.iterator().next();
		} else {
			return null;
		}
	}
	
	@Override
	public UmlgNode getOwningObject() {
		UmlgNode result;
		if ( getGod() != null ) {
			result = getGod();
		} else {
			result = null;
		}
		return result;
	}
	
	@Override
	public String getQualifiedName() {
		return "umlgtest::org::umlg::concretetest::Universe";
	}
	
	/**
	 * getQualifiers is called from the collection in order to update the index used to implement the qualifier
	 * 
	 * @param tumlRuntimeProperty 
	 * @param node 
	 * @param inverse 
	 */
	@Override
	public List getQualifiers(UmlgRuntimeProperty tumlRuntimeProperty, UmlgNode node, boolean inverse) {
		List result = super.getQualifiers(tumlRuntimeProperty, node, inverse);
		UniverseRuntimePropertyEnum runtimeProperty;
		if ( !inverse ) {
			runtimeProperty = UniverseRuntimePropertyEnum.fromQualifiedName(tumlRuntimeProperty.getQualifiedName());
		} else {
			runtimeProperty = UniverseRuntimePropertyEnum.fromQualifiedName(tumlRuntimeProperty.getInverseQualifiedName());
		}
		if ( runtimeProperty != null && result.isEmpty() ) {
			switch ( runtimeProperty ) {
				default:
					result = Collections.emptyList();
			}
		
		}
		return result;
	}
	
	public Integer getRange() {
		UmlgSet tmp = this.range;
		if ( !tmp.isEmpty() ) {
			return tmp.iterator().next();
		} else {
			return null;
		}
	}
	
	public String getRangeLength() {
		UmlgSet tmp = this.rangeLength;
		if ( !tmp.isEmpty() ) {
			return tmp.iterator().next();
		} else {
			return null;
		}
	}
	
	/**
	 * getSize is called from the BaseCollection.addInternal in order to save the size of the inverse collection to update the edge's sequence order
	 * 
	 * @param inverse 
	 * @param tumlRuntimeProperty 
	 */
	@Override
	public int getSize(boolean inverse, UmlgRuntimeProperty tumlRuntimeProperty) {
		int result = super.getSize(inverse, tumlRuntimeProperty);
		UniverseRuntimePropertyEnum runtimeProperty;
		if ( !inverse ) {
			runtimeProperty = UniverseRuntimePropertyEnum.fromQualifiedName(tumlRuntimeProperty.getQualifiedName());
		} else {
			runtimeProperty = UniverseRuntimePropertyEnum.fromQualifiedName(tumlRuntimeProperty.getInverseQualifiedName());
		}
		if ( runtimeProperty != null && result == 0 ) {
			switch ( runtimeProperty ) {
				case spaceTime:
					result = spaceTime.size();
					break;
			
				case rangeLength:
					result = rangeLength.size();
					break;
			
				case range:
					result = range.size();
					break;
			
				case demon:
					result = demon.size();
					break;
			
				case maxLength:
					result = maxLength.size();
					break;
			
				case testMinLength:
					result = testMinLength.size();
					break;
			
				case god:
					result = god.size();
					break;
			
				case nonNavigableMany:
					result = nonNavigableMany.size();
					break;
			
				case min:
					result = min.size();
					break;
			
				case max:
					result = max.size();
					break;
			
				case email:
					result = email.size();
					break;
			
				case name:
					result = name.size();
					break;
			
				case nonNavigableOne:
					result = nonNavigableOne.size();
					break;
			
				case angel:
					result = angel.size();
					break;
			
				default:
					result = 0;
			}
		
		}
		return result;
	}
	
	public SpaceTime getSpaceTime() {
		UmlgSet tmp = this.spaceTime;
		if ( !tmp.isEmpty() ) {
			return tmp.iterator().next();
		} else {
			return null;
		}
	}
	
	public String getTestMinLength() {
		UmlgSet tmp = this.testMinLength;
		if ( !tmp.isEmpty() ) {
			return tmp.iterator().next();
		} else {
			return null;
		}
	}
	
	@Override
	public boolean hasOnlyOneCompositeParent() {
		int result = 0;
		result = result + (getGod() != null ? 1 : 0);
		return result == 1;
	}
	
	public void initDataTypeVariablesWithDefaultValues() {
		super.initDataTypeVariablesWithDefaultValues();
	}
	
	public void initVariables() {
		super.initVariables();
	}
	
	/**
	 * boolean properties' default values are initialized in the constructor via z_internalBooleanProperties
	 * 
	 * @param loaded 
	 */
	@Override
	public void initialiseProperties(boolean loaded) {
		super.initialiseProperties(loaded);
		this.spaceTime =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.spaceTime), loaded);
		this.rangeLength =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.rangeLength), loaded);
		this.range =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.range), loaded);
		this.maxLength =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.maxLength), loaded);
		this.testMinLength =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.testMinLength), loaded);
		this.god =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.god), loaded);
		this.nonNavigableMany =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.nonNavigableMany), loaded);
		this.min =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.min), loaded);
		this.email =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.email), loaded);
		this.name =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.name), loaded);
		this.nonNavigableOne =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.nonNavigableOne), loaded);
		this.angel =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.angel), loaded);
		this.max =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.max), loaded);
		this.demon =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.demon), loaded);
	}
	
	@Override
	public void initialiseProperty(UmlgRuntimeProperty tumlRuntimeProperty, boolean inverse, boolean loaded) {
		UniverseRuntimePropertyEnum runtimeProperty;
		super.initialiseProperty(tumlRuntimeProperty, inverse, loaded);
		if ( !inverse ) {
			runtimeProperty = (UniverseRuntimePropertyEnum.fromQualifiedName(tumlRuntimeProperty.getQualifiedName()));
		} else {
			runtimeProperty = (UniverseRuntimePropertyEnum.fromQualifiedName(tumlRuntimeProperty.getInverseQualifiedName()));
		}
		if ( runtimeProperty != null ) {
			switch ( runtimeProperty ) {
				case maxLength:
					this.maxLength =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.maxLength), loaded);
					break;
			
				case spaceTime:
					this.spaceTime =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.spaceTime), loaded);
					break;
			
				case rangeLength:
					this.rangeLength =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.rangeLength), loaded);
					break;
			
				case range:
					this.range =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.range), loaded);
					break;
			
				case testMinLength:
					this.testMinLength =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.testMinLength), loaded);
					break;
			
				case demon:
					this.demon =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.demon), loaded);
					break;
			
				case god:
					this.god =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.god), loaded);
					break;
			
				case nonNavigableMany:
					this.nonNavigableMany =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.nonNavigableMany), loaded);
					break;
			
				case min:
					this.min =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.min), loaded);
					break;
			
				case angel:
					this.angel =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.angel), loaded);
					break;
			
				case email:
					this.email =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.email), loaded);
					break;
			
				case name:
					this.name =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.name), loaded);
					break;
			
				case max:
					this.max =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.max), loaded);
					break;
			
				case nonNavigableOne:
					this.nonNavigableOne =  new UmlgSetImpl(this, PropertyTree.from(UniverseRuntimePropertyEnum.nonNavigableOne), loaded);
					break;
			
			}
		
		}
	}
	
	@Override
	public UmlgRuntimeProperty inverseAdder(UmlgRuntimeProperty tumlRuntimeProperty, boolean inverse, UmlgNode umlgNode) {
		UmlgRuntimeProperty fromSuperRuntimeProperty = super.inverseAdder(tumlRuntimeProperty, inverse, umlgNode);
		UniverseRuntimePropertyEnum runtimeProperty;
		if ( fromSuperRuntimeProperty != null ) {
			return fromSuperRuntimeProperty;
		} else {
			if ( !inverse ) {
				runtimeProperty = (UniverseRuntimePropertyEnum.fromQualifiedName(tumlRuntimeProperty.getQualifiedName()));
			} else {
				runtimeProperty = (UniverseRuntimePropertyEnum.fromQualifiedName(tumlRuntimeProperty.getInverseQualifiedName()));
			}
			if ( runtimeProperty != null ) {
				switch ( runtimeProperty ) {
					case spaceTime:
						this.spaceTime.inverseAdder((SpaceTime)umlgNode);
						break;
				
					case god:
						this.god.inverseAdder((God)umlgNode);
						break;
				
					case nonNavigableMany:
						this.nonNavigableMany.inverseAdder((NonNavigableMany)umlgNode);
						break;
				
					case nonNavigableOne:
						this.nonNavigableOne.inverseAdder((NonNavigableOne)umlgNode);
						break;
				
					case angel:
						this.angel.inverseAdder((Angel)umlgNode);
						break;
				
					case demon:
						this.demon.inverseAdder((Demon)umlgNode);
						break;
				
				}
				
				return runtimeProperty;
			} else {
				return null;
			}
		}
	}
	
	@Override
	public boolean isTinkerRoot() {
		return false;
	}
	
	public UmlgSet lookupFor_universe_angel() {
		UmlgSet result = new UmlgMemorySet();
		Filter filter = new Filter() {
		    @Override
		    public boolean filter(Angel entity){
		        return entity.getUniverse() == null;
		    }
		};
		result.addAll(org.umlg.concretetest.Angel.allInstances(filter));
		return result;
	}
	
	public UmlgSet lookupFor_universe_demon() {
		UmlgSet result = new UmlgMemorySet();
		Filter filter = new Filter() {
		    @Override
		    public boolean filter(Demon entity){
		        return entity.getUniverse() == null;
		    }
		};
		result.addAll(org.umlg.concretetest.Demon.allInstances(filter));
		return result;
	}
	
	public UmlgSet lookupFor_universe_nonNavigableMany() {
		UmlgSet result = new UmlgMemorySet();
		Filter filter = new Filter() {
		    @Override
		    public boolean filter(NonNavigableMany entity){
		        return entity.getUniverse() == null;
		    }
		};
		result.addAll(org.umlg.navigability.NonNavigableMany.allInstances(filter));
		return result;
	}
	
	public UmlgSet lookupFor_universe_nonNavigableOne() {
		UmlgSet result = new UmlgMemorySet();
		Filter filter = new Filter() {
		    @Override
		    public boolean filter(NonNavigableOne entity){
		        return entity.z_internal_getUniverse() == null;
		    }
		};
		result.addAll(org.umlg.navigability.NonNavigableOne.allInstances(filter));
		return result;
	}
	
	public void removeFromAngel(Angel angel) {
		if ( angel != null ) {
			this.angel.remove(angel);
		}
	}
	
	public void removeFromAngel(UmlgSet angel) {
		if ( !angel.isEmpty() ) {
			this.angel.removeAll(angel);
		}
	}
	
	public void removeFromDemon(Demon demon) {
		if ( demon != null ) {
			this.demon.remove(demon);
		}
	}
	
	public void removeFromDemon(UmlgSet demon) {
		if ( !demon.isEmpty() ) {
			this.demon.removeAll(demon);
		}
	}
	
	public void removeFromEmail(String email) {
		if ( email != null ) {
			this.email.remove(email);
		}
	}
	
	public void removeFromEmail(UmlgSet email) {
		if ( !email.isEmpty() ) {
			this.email.removeAll(email);
		}
	}
	
	public void removeFromGod(God god) {
		if ( god != null ) {
			this.god.remove(god);
		}
	}
	
	public void removeFromGod(UmlgSet god) {
		if ( !god.isEmpty() ) {
			this.god.removeAll(god);
		}
	}
	
	public void removeFromMax(Integer max) {
		if ( max != null ) {
			this.max.remove(max);
		}
	}
	
	public void removeFromMax(UmlgSet max) {
		if ( !max.isEmpty() ) {
			this.max.removeAll(max);
		}
	}
	
	public void removeFromMaxLength(String maxLength) {
		if ( maxLength != null ) {
			this.maxLength.remove(maxLength);
		}
	}
	
	public void removeFromMaxLength(UmlgSet maxLength) {
		if ( !maxLength.isEmpty() ) {
			this.maxLength.removeAll(maxLength);
		}
	}
	
	public void removeFromMin(Integer min) {
		if ( min != null ) {
			this.min.remove(min);
		}
	}
	
	public void removeFromMin(UmlgSet min) {
		if ( !min.isEmpty() ) {
			this.min.removeAll(min);
		}
	}
	
	public void removeFromName(String name) {
		if ( name != null ) {
			this.name.remove(name);
		}
	}
	
	public void removeFromName(UmlgSet name) {
		if ( !name.isEmpty() ) {
			this.name.removeAll(name);
		}
	}
	
	public void removeFromNonNavigableMany(NonNavigableMany nonNavigableMany) {
		if ( nonNavigableMany != null ) {
			this.nonNavigableMany.remove(nonNavigableMany);
		}
	}
	
	public void removeFromNonNavigableMany(UmlgSet nonNavigableMany) {
		if ( !nonNavigableMany.isEmpty() ) {
			this.nonNavigableMany.removeAll(nonNavigableMany);
		}
	}
	
	public void removeFromNonNavigableOne(NonNavigableOne nonNavigableOne) {
		if ( nonNavigableOne != null ) {
			this.nonNavigableOne.remove(nonNavigableOne);
		}
	}
	
	public void removeFromNonNavigableOne(UmlgSet nonNavigableOne) {
		if ( !nonNavigableOne.isEmpty() ) {
			this.nonNavigableOne.removeAll(nonNavigableOne);
		}
	}
	
	public void removeFromRange(Integer range) {
		if ( range != null ) {
			this.range.remove(range);
		}
	}
	
	public void removeFromRange(UmlgSet range) {
		if ( !range.isEmpty() ) {
			this.range.removeAll(range);
		}
	}
	
	public void removeFromRangeLength(String rangeLength) {
		if ( rangeLength != null ) {
			this.rangeLength.remove(rangeLength);
		}
	}
	
	public void removeFromRangeLength(UmlgSet rangeLength) {
		if ( !rangeLength.isEmpty() ) {
			this.rangeLength.removeAll(rangeLength);
		}
	}
	
	public void removeFromSpaceTime(SpaceTime spaceTime) {
		if ( spaceTime != null ) {
			this.spaceTime.remove(spaceTime);
		}
	}
	
	public void removeFromSpaceTime(UmlgSet spaceTime) {
		if ( !spaceTime.isEmpty() ) {
			this.spaceTime.removeAll(spaceTime);
		}
	}
	
	public void removeFromTestMinLength(String testMinLength) {
		if ( testMinLength != null ) {
			this.testMinLength.remove(testMinLength);
		}
	}
	
	public void removeFromTestMinLength(UmlgSet testMinLength) {
		if ( !testMinLength.isEmpty() ) {
			this.testMinLength.removeAll(testMinLength);
		}
	}
	
	public void setAngel(Angel angel) {
		if ( angel != null ) {
			angel.clearUniverse();
			angel.initialiseProperty(AngelRuntimePropertyEnum.universe, false, true);
		}
		clearAngel();
		addToAngel(angel);
	}
	
	public void setDemon(UmlgSet demon) {
		clearDemon();
		if ( demon != null ) {
			addToDemon(demon);
		}
	}
	
	public void setEmail(String email) {
		if ( email == null ) {
			clearEmail();
		} else {
			z_internalClearEmail();
		}
		addToEmail(email);
	}
	
	public void setGod(God god) {
		clearGod();
		addToGod(god);
	}
	
	public void setMax(Integer max) {
		if ( max == null ) {
			clearMax();
		} else {
			z_internalClearMax();
		}
		addToMax(max);
	}
	
	public void setMaxLength(String maxLength) {
		if ( maxLength == null ) {
			clearMaxLength();
		} else {
			z_internalClearMaxLength();
		}
		addToMaxLength(maxLength);
	}
	
	public void setMin(Integer min) {
		if ( min == null ) {
			clearMin();
		} else {
			z_internalClearMin();
		}
		addToMin(min);
	}
	
	public void setName(String name) {
		if ( name == null ) {
			clearName();
		} else {
			z_internalClearName();
		}
		addToName(name);
	}
	
	public void setNonNavigableMany(UmlgSet nonNavigableMany) {
		clearNonNavigableMany();
		if ( nonNavigableMany != null ) {
			addToNonNavigableMany(nonNavigableMany);
		}
	}
	
	public void setNonNavigableOne(NonNavigableOne nonNavigableOne) {
		if ( nonNavigableOne != null ) {
			nonNavigableOne.clearUniverse();
			nonNavigableOne.initialiseProperty(NonNavigableOneRuntimePropertyEnum.universe, false, true);
		}
		clearNonNavigableOne();
		addToNonNavigableOne(nonNavigableOne);
	}
	
	public void setRange(Integer range) {
		if ( range == null ) {
			clearRange();
		} else {
			z_internalClearRange();
		}
		addToRange(range);
	}
	
	public void setRangeLength(String rangeLength) {
		if ( rangeLength == null ) {
			clearRangeLength();
		} else {
			z_internalClearRangeLength();
		}
		addToRangeLength(rangeLength);
	}
	
	public void setSpaceTime(SpaceTime spaceTime) {
		if ( spaceTime != null ) {
			spaceTime.clearUniverse();
			spaceTime.initialiseProperty(SpaceTimeRuntimePropertyEnum.universe, false, true);
		}
		clearSpaceTime();
		addToSpaceTime(spaceTime);
	}
	
	public void setTestMinLength(String testMinLength) {
		if ( testMinLength == null ) {
			clearTestMinLength();
		} else {
			z_internalClearTestMinLength();
		}
		addToTestMinLength(testMinLength);
	}
	
	/**
	 * deep indicates that components also be serialized.
	 * 
	 * @param deep 
	 */
	@Override
	public String toJson(Boolean deep) {
		String result = super.toJson(deep);
		result = result.substring(1, result.length() - 1);
		StringBuilder sb = new StringBuilder(result);
		sb.append(", ");
		if ( deep ) {
			sb.append("\"spaceTime\": " + (getSpaceTime() == null ? "null" : getSpaceTime().toJson(true)) + "");
		} else {
			sb.delete(sb.length() - 2, sb.length());
		}
		sb.append(", ");
		sb.append("\"rangeLength\": " + (getRangeLength() != null ? "\"" + StringEscapeUtils.escapeJson(getRangeLength()) + "\"" : null ));
		sb.append(", ");
		sb.append("\"range\": " + getRange() + "");
		sb.append(", ");
		sb.append("\"name\": " + (getName() != null ? "\"" + StringEscapeUtils.escapeJson(getName()) + "\"" : null ));
		sb.append(", ");
		sb.append("\"maxLength\": " + (getMaxLength() != null ? "\"" + StringEscapeUtils.escapeJson(getMaxLength()) + "\"" : null ));
		sb.append(", ");
		sb.append("\"testMinLength\": " + (getTestMinLength() != null ? "\"" + StringEscapeUtils.escapeJson(getTestMinLength()) + "\"" : null ));
		sb.append(", ");
		if ( getGod() != null ) {
			if ( UmlgTmpIdManager.INSTANCE.get(getGod().getId()) != null ) {
				sb.append("\"god\": " + "{\"id\": \"" + getGod().getId() + "\", \"tmpId\": \"" + UmlgTmpIdManager.INSTANCE.get(getGod().getId())  + "\",\"displayName\": \"" + getGod().getName() + "\"}" + "");
			} else {
				sb.append("\"god\": " + "{\"id\": \"" + getGod().getId() + "\", \"displayName\": \"" + getGod().getName() + "\"}" + "");
			}
		} else {
			sb.append("\"god\": " + "{\"id\": " + null + ", \"displayName\": " + null + "}");
		}
		sb.append(", ");
		if ( getNonNavigableOne() != null ) {
			if ( UmlgTmpIdManager.INSTANCE.get(getNonNavigableOne().getId()) != null ) {
				sb.append("\"nonNavigableOne\": " + "{\"id\": \"" + getNonNavigableOne().getId() + "\", \"tmpId\": \"" + UmlgTmpIdManager.INSTANCE.get(getNonNavigableOne().getId())  + "\",\"displayName\": \"" + getNonNavigableOne().getName() + "\"}" + "");
			} else {
				sb.append("\"nonNavigableOne\": " + "{\"id\": \"" + getNonNavigableOne().getId() + "\", \"displayName\": \"" + getNonNavigableOne().getName() + "\"}" + "");
			}
		} else {
			sb.append("\"nonNavigableOne\": " + "{\"id\": " + null + ", \"displayName\": " + null + "}");
		}
		sb.append(", ");
		if ( getAngel() != null ) {
			if ( UmlgTmpIdManager.INSTANCE.get(getAngel().getId()) != null ) {
				sb.append("\"angel\": " + "{\"id\": \"" + getAngel().getId() + "\", \"tmpId\": \"" + UmlgTmpIdManager.INSTANCE.get(getAngel().getId())  + "\",\"displayName\": \"" + getAngel().getName() + "\"}" + "");
			} else {
				sb.append("\"angel\": " + "{\"id\": \"" + getAngel().getId() + "\", \"displayName\": \"" + getAngel().getName() + "\"}" + "");
			}
		} else {
			sb.append("\"angel\": " + "{\"id\": " + null + ", \"displayName\": " + null + "}");
		}
		sb.append(", ");
		sb.append("\"min\": " + getMin() + "");
		sb.append(", ");
		sb.append("\"email\": " + (getEmail() != null ? "\"" + getEmail() + "\"" : null ));
		sb.append(", ");
		sb.append("\"max\": " + getMax() + "");
		sb.insert(0, "{");
		sb.append("}");
		return sb.toString();
	}
	
	@Override
	public String toJson() {
		return toJson(false);
	}
	
	/**
	 * deep indicates that components also be serialized.
	 * 
	 * @param deep 
	 */
	@Override
	public String toJsonWithoutCompositeParent(Boolean deep) {
		String result = super.toJsonWithoutCompositeParent(deep);
		result = result.substring(1, result.length() - 1);
		StringBuilder sb = new StringBuilder(result);
		sb.append(", ");
		if ( deep ) {
			sb.append("\"spaceTime\": " + (getSpaceTime() == null ? "null" : getSpaceTime().toJsonWithoutCompositeParent(true)) + "");
		} else {
			sb.delete(sb.length() - 2, sb.length());
		}
		sb.append(", ");
		sb.append("\"rangeLength\": " + (getRangeLength() != null ? "\"" + StringEscapeUtils.escapeJson(getRangeLength()) + "\"" : null ));
		sb.append(", ");
		sb.append("\"range\": " + getRange() + "");
		sb.append(", ");
		sb.append("\"name\": " + (getName() != null ? "\"" + StringEscapeUtils.escapeJson(getName()) + "\"" : null ));
		sb.append(", ");
		sb.append("\"maxLength\": " + (getMaxLength() != null ? "\"" + StringEscapeUtils.escapeJson(getMaxLength()) + "\"" : null ));
		sb.append(", ");
		sb.append("\"testMinLength\": " + (getTestMinLength() != null ? "\"" + StringEscapeUtils.escapeJson(getTestMinLength()) + "\"" : null ));
		sb.append(", ");
		if ( getNonNavigableOne() != null ) {
			if ( UmlgTmpIdManager.INSTANCE.get(getNonNavigableOne().getId()) != null ) {
				sb.append("\"nonNavigableOne\": " + "{\"id\": \"" + getNonNavigableOne().getId() + "\", \"tmpId\": \"" + UmlgTmpIdManager.INSTANCE.get(getNonNavigableOne().getId())  + "\",\"displayName\": \"" + getNonNavigableOne().getName() + "\"}" + "");
			} else {
				sb.append("\"nonNavigableOne\": " + "{\"id\": \"" + getNonNavigableOne().getId() + "\", \"displayName\": \"" + getNonNavigableOne().getName() + "\"}" + "");
			}
		} else {
			sb.append("\"nonNavigableOne\": " + "{\"id\": " + null + ", \"displayName\": " + null + "}");
		}
		sb.append(", ");
		if ( getAngel() != null ) {
			if ( UmlgTmpIdManager.INSTANCE.get(getAngel().getId()) != null ) {
				sb.append("\"angel\": " + "{\"id\": \"" + getAngel().getId() + "\", \"tmpId\": \"" + UmlgTmpIdManager.INSTANCE.get(getAngel().getId())  + "\",\"displayName\": \"" + getAngel().getName() + "\"}" + "");
			} else {
				sb.append("\"angel\": " + "{\"id\": \"" + getAngel().getId() + "\", \"displayName\": \"" + getAngel().getName() + "\"}" + "");
			}
		} else {
			sb.append("\"angel\": " + "{\"id\": " + null + ", \"displayName\": " + null + "}");
		}
		sb.append(", ");
		sb.append("\"min\": " + getMin() + "");
		sb.append(", ");
		sb.append("\"email\": " + (getEmail() != null ? "\"" + getEmail() + "\"" : null ));
		sb.append(", ");
		sb.append("\"max\": " + getMax() + "");
		sb.insert(0, "{");
		sb.append("}");
		return sb.toString();
	}
	
	@Override
	public String toJsonWithoutCompositeParent() {
		return toJsonWithoutCompositeParent(false);
	}
	
	public List validateEmail(String email) {
		List result = new ArrayList();
		if ( !UmlgValidator.validateEmail(email) ) {
			result.add(new UmlgConstraintViolation("Email", "umlgtest::org::umlg::concretetest::Universe::email", "Email does not pass validation!"));
		}
		return result;
	}
	
	public List validateMax(Integer max) {
		List result = new ArrayList();
		if ( !UmlgValidator.validateMaxInteger(max, 100) ) {
			result.add(new UmlgConstraintViolation("MaxInteger", "umlgtest::org::umlg::concretetest::Universe::max", "MaxInteger does not pass validation!"));
		}
		return result;
	}
	
	public List validateMaxLength(String maxLength) {
		List result = new ArrayList();
		if ( !UmlgValidator.validateMaxLength(maxLength, 10) ) {
			result.add(new UmlgConstraintViolation("MaxLength", "umlgtest::org::umlg::concretetest::Universe::maxLength", "MaxLength does not pass validation!"));
		}
		return result;
	}
	
	public List validateMin(Integer min) {
		List result = new ArrayList();
		if ( !UmlgValidator.validateMinInteger(min, 10) ) {
			result.add(new UmlgConstraintViolation("MinInteger", "umlgtest::org::umlg::concretetest::Universe::min", "MinInteger does not pass validation!"));
		}
		return result;
	}
	
	@Override
	public List validateMultiplicities() {
		List result = new ArrayList();
		if ( getSpaceTime() == null ) {
			result.add(new UmlgConstraintViolation("multiplicity", "umlgtest::org::umlg::concretetest::Universe::spaceTime", "lower multiplicity is 1"));
		}
		if ( getUpdatedOn() == null ) {
			result.add(new UmlgConstraintViolation("multiplicity", "umlglib::org::umlg::BaseModelUmlg::updatedOn", "lower multiplicity is 1"));
		}
		if ( getGod() == null ) {
			result.add(new UmlgConstraintViolation("multiplicity", "umlgtest::org::umlg::concretetest::A__::god", "lower multiplicity is 1"));
		}
		if ( getCreatedOn() == null ) {
			result.add(new UmlgConstraintViolation("multiplicity", "umlglib::org::umlg::BaseModelUmlg::createdOn", "lower multiplicity is 1"));
		}
		return result;
	}
	
	public List validateName(String name) {
		List result = new ArrayList();
		return result;
	}
	
	public List validateRange(Integer range) {
		List result = new ArrayList();
		if ( !UmlgValidator.validateRangeInteger(range, 2, 4) ) {
			result.add(new UmlgConstraintViolation("RangeInteger", "umlgtest::org::umlg::concretetest::Universe::range", "RangeInteger does not pass validation!"));
		}
		return result;
	}
	
	public List validateRangeLength(String rangeLength) {
		List result = new ArrayList();
		if ( !UmlgValidator.validateRangeLength(rangeLength, 5, 10) ) {
			result.add(new UmlgConstraintViolation("RangeLength", "umlgtest::org::umlg::concretetest::Universe::rangeLength", "RangeLength does not pass validation!"));
		}
		return result;
	}
	
	public List validateTestMinLength(String testMinLength) {
		List result = new ArrayList();
		if ( !UmlgValidator.validateMinLength(testMinLength, 5) ) {
			result.add(new UmlgConstraintViolation("MinLength", "umlgtest::org::umlg::concretetest::Universe::testMinLength", "MinLength does not pass validation!"));
		}
		return result;
	}
	
	@Override
	public void z_internalAddPersistentValueToCollection(UmlgRuntimeProperty umlgRuntimeProperty, Object umlgNode) {
		UniverseRuntimePropertyEnum runtimeProperty;
		super.z_internalAddPersistentValueToCollection(umlgRuntimeProperty, umlgNode);
		runtimeProperty = (UniverseRuntimePropertyEnum.fromQualifiedName(umlgRuntimeProperty.getQualifiedName()));
		if ( runtimeProperty != null ) {
			switch ( runtimeProperty ) {
				case testMinLength:
					this.testMinLength.z_internalAdder((String)umlgNode);
					break;
			
				case spaceTime:
					this.spaceTime.z_internalAdder((SpaceTime)umlgNode);
					break;
			
				case rangeLength:
					this.rangeLength.z_internalAdder((String)umlgNode);
					break;
			
				case max:
					this.max.z_internalAdder((int)umlgNode);
					break;
			
				case demon:
					this.demon.z_internalAdder((Demon)umlgNode);
					break;
			
				case angel:
					this.angel.z_internalAdder((Angel)umlgNode);
					break;
			
				case range:
					this.range.z_internalAdder((int)umlgNode);
					break;
			
				case maxLength:
					this.maxLength.z_internalAdder((String)umlgNode);
					break;
			
				case god:
					this.god.z_internalAdder((God)umlgNode);
					break;
			
				case nonNavigableMany:
					this.nonNavigableMany.z_internalAdder((NonNavigableMany)umlgNode);
					break;
			
				case min:
					this.min.z_internalAdder((int)umlgNode);
					break;
			
				case email:
					this.email.z_internalAdder(UmlgFormatter.parse(UniverseRuntimePropertyEnum.email.getDataTypeEnum(), umlgNode));
					break;
			
				case name:
					this.name.z_internalAdder((String)umlgNode);
					break;
			
				case nonNavigableOne:
					this.nonNavigableOne.z_internalAdder((NonNavigableOne)umlgNode);
					break;
			
			}
		
		}
	}
	
	@Override
	public void z_internalAddToCollection(UmlgRuntimeProperty umlgRuntimeProperty, Object umlgNode) {
		UniverseRuntimePropertyEnum runtimeProperty;
		super.z_internalAddToCollection(umlgRuntimeProperty, umlgNode);
		runtimeProperty = (UniverseRuntimePropertyEnum.fromQualifiedName(umlgRuntimeProperty.getQualifiedName()));
		if ( runtimeProperty != null ) {
			switch ( runtimeProperty ) {
				case range:
					this.range.z_internalAdder((Integer)umlgNode);
					break;
			
				case spaceTime:
					this.spaceTime.z_internalAdder((SpaceTime)umlgNode);
					break;
			
				case rangeLength:
					this.rangeLength.z_internalAdder((String)umlgNode);
					break;
			
				case maxLength:
					this.maxLength.z_internalAdder((String)umlgNode);
					break;
			
				case testMinLength:
					this.testMinLength.z_internalAdder((String)umlgNode);
					break;
			
				case god:
					this.god.z_internalAdder((God)umlgNode);
					break;
			
				case nonNavigableMany:
					this.nonNavigableMany.z_internalAdder((NonNavigableMany)umlgNode);
					break;
			
				case max:
					this.max.z_internalAdder((Integer)umlgNode);
					break;
			
				case min:
					this.min.z_internalAdder((Integer)umlgNode);
					break;
			
				case email:
					this.email.z_internalAdder((String)umlgNode);
					break;
			
				case demon:
					this.demon.z_internalAdder((Demon)umlgNode);
					break;
			
				case name:
					this.name.z_internalAdder((String)umlgNode);
					break;
			
				case nonNavigableOne:
					this.nonNavigableOne.z_internalAdder((NonNavigableOne)umlgNode);
					break;
			
				case angel:
					this.angel.z_internalAdder((Angel)umlgNode);
					break;
			
			}
		
		}
	}
	
	@Override
	public Set z_internalBooleanProperties() {
		Set result = super.z_internalBooleanProperties();
		return result;
	}
	
	public void z_internalClearAngel() {
		this.angel.z_internalClear();
	}
	
	public void z_internalClearDemon() {
		this.demon.z_internalClear();
	}
	
	public void z_internalClearEmail() {
		this.email.z_internalClear();
	}
	
	public void z_internalClearGod() {
		this.god.z_internalClear();
	}
	
	public void z_internalClearMax() {
		this.max.z_internalClear();
	}
	
	public void z_internalClearMaxLength() {
		this.maxLength.z_internalClear();
	}
	
	public void z_internalClearMin() {
		this.min.z_internalClear();
	}
	
	public void z_internalClearName() {
		this.name.z_internalClear();
	}
	
	public void z_internalClearNonNavigableMany() {
		this.nonNavigableMany.z_internalClear();
	}
	
	public void z_internalClearNonNavigableOne() {
		this.nonNavigableOne.z_internalClear();
	}
	
	public void z_internalClearRange() {
		this.range.z_internalClear();
	}
	
	public void z_internalClearRangeLength() {
		this.rangeLength.z_internalClear();
	}
	
	public void z_internalClearSpaceTime() {
		this.spaceTime.z_internalClear();
	}
	
	public void z_internalClearTestMinLength() {
		this.testMinLength.z_internalClear();
	}
	
	@Override
	public Set z_internalDataTypeProperties() {
		Set result = super.z_internalDataTypeProperties();
		result.add(UniverseRuntimePropertyEnum.rangeLength);
		result.add(UniverseRuntimePropertyEnum.range);
		result.add(UniverseRuntimePropertyEnum.maxLength);
		result.add(UniverseRuntimePropertyEnum.testMinLength);
		result.add(UniverseRuntimePropertyEnum.min);
		result.add(UniverseRuntimePropertyEnum.email);
		result.add(UniverseRuntimePropertyEnum.name);
		result.add(UniverseRuntimePropertyEnum.max);
		return result;
	}
	
	@Override
	public Map z_internalDataTypePropertiesWithDefaultValues() {
		Map result = super.z_internalDataTypePropertiesWithDefaultValues();
		return result;
	}
	
	@Override
	public UmlgCollection z_internalGetCollectionFor(UmlgRuntimeProperty tumlRuntimeProperty, boolean inverse) {
		UmlgCollection result = null;
		result = super.z_internalGetCollectionFor(tumlRuntimeProperty, inverse);
		if ( result == null ) {
			UniverseRuntimePropertyEnum runtimeProperty;
			if ( !inverse ) {
				runtimeProperty = (UniverseRuntimePropertyEnum.fromQualifiedName(tumlRuntimeProperty.getQualifiedName()));
			} else {
				runtimeProperty = (UniverseRuntimePropertyEnum.fromQualifiedName(tumlRuntimeProperty.getInverseQualifiedName()));
			}
			if ( runtimeProperty != null ) {
				switch ( runtimeProperty ) {
					case range:
						result = this.range;
						break;
				
					case spaceTime:
						result = this.spaceTime;
						break;
				
					case rangeLength:
						result = this.rangeLength;
						break;
				
					case maxLength:
						result = this.maxLength;
						break;
				
					case angel:
						result = this.angel;
						break;
				
					case testMinLength:
						result = this.testMinLength;
						break;
				
					case god:
						result = this.god;
						break;
				
					case nonNavigableMany:
						result = this.nonNavigableMany;
						break;
				
					case demon:
						result = this.demon;
						break;
				
					case min:
						result = this.min;
						break;
				
					case email:
						result = this.email;
						break;
				
					case max:
						result = this.max;
						break;
				
					case name:
						result = this.name;
						break;
				
					case nonNavigableOne:
						result = this.nonNavigableOne;
						break;
				
				}
			
			}
		}
		return result;
	}
	
	@Override
	public UmlgRuntimeProperty z_internalInverseAdder(UmlgRuntimeProperty tumlRuntimeProperty, boolean inverse, UmlgNode umlgNode) {
		UmlgRuntimeProperty fromSuperRuntimeProperty = super.inverseAdder(tumlRuntimeProperty, inverse, umlgNode);
		UniverseRuntimePropertyEnum runtimeProperty;
		if ( fromSuperRuntimeProperty != null ) {
			return fromSuperRuntimeProperty;
		} else {
			if ( !inverse ) {
				runtimeProperty = (UniverseRuntimePropertyEnum.fromQualifiedName(tumlRuntimeProperty.getQualifiedName()));
			} else {
				runtimeProperty = (UniverseRuntimePropertyEnum.fromQualifiedName(tumlRuntimeProperty.getInverseQualifiedName()));
			}
			if ( runtimeProperty != null ) {
				switch ( runtimeProperty ) {
					case spaceTime:
						this.spaceTime.z_internalAdder((SpaceTime)umlgNode);
						break;
				
					case god:
						this.god.z_internalAdder((God)umlgNode);
						break;
				
					case nonNavigableMany:
						this.nonNavigableMany.z_internalAdder((NonNavigableMany)umlgNode);
						break;
				
					case nonNavigableOne:
						this.nonNavigableOne.z_internalAdder((NonNavigableOne)umlgNode);
						break;
				
					case angel:
						this.angel.z_internalAdder((Angel)umlgNode);
						break;
				
					case demon:
						this.demon.z_internalAdder((Demon)umlgNode);
						break;
				
				}
				
				return runtimeProperty;
			} else {
				return null;
			}
		}
	}
	
	@Override
	public void z_internalMarkCollectionLoaded(UmlgRuntimeProperty umlgRuntimeProperty, boolean loaded) {
		UniverseRuntimePropertyEnum runtimeProperty;
		super.z_internalMarkCollectionLoaded(umlgRuntimeProperty, loaded);
		runtimeProperty = (UniverseRuntimePropertyEnum.fromQualifiedName(umlgRuntimeProperty.getQualifiedName()));
		if ( runtimeProperty != null ) {
			switch ( runtimeProperty ) {
				case testMinLength:
					this.testMinLength.setLoaded(loaded);
					break;
			
				case spaceTime:
					this.spaceTime.setLoaded(loaded);
					break;
			
				case rangeLength:
					this.rangeLength.setLoaded(loaded);
					break;
			
				case demon:
					this.demon.setLoaded(loaded);
					break;
			
				case range:
					this.range.setLoaded(loaded);
					break;
			
				case maxLength:
					this.maxLength.setLoaded(loaded);
					break;
			
				case angel:
					this.angel.setLoaded(loaded);
					break;
			
				case god:
					this.god.setLoaded(loaded);
					break;
			
				case nonNavigableMany:
					this.nonNavigableMany.setLoaded(loaded);
					break;
			
				case max:
					this.max.setLoaded(loaded);
					break;
			
				case min:
					this.min.setLoaded(loaded);
					break;
			
				case email:
					this.email.setLoaded(loaded);
					break;
			
				case name:
					this.name.setLoaded(loaded);
					break;
			
				case nonNavigableOne:
					this.nonNavigableOne.setLoaded(loaded);
					break;
			
			}
		
		}
	}

	static public enum UniverseRuntimePropertyEnum implements UmlgRuntimeProperty {
		spaceTime(/* qualifiedName */ "umlgtest::org::umlg::concretetest::Universe::spaceTime",/* persistentName */ "spaceTime",/* inverseName */ "universe",/* inverseQualifiedName */ "umlgtest::org::umlg::componenttest::A__::universe",/* isAssociationClassOne */ false,/* isMemberEndOfAssociationClass */ false,/* associationClassPropertyNameField */ "null",/* inverseAssociationClassPropertyNameField */ "null",/* isAssociationClassProperty */ false,/* isOnePrimitivePropertyOfAssociationClass */ false,/* isOnePrimitive */ false,/* isReadOnly */ false,/* dataTypeEnum */ null,/* validations */ Collections.emptyList(),/* isManyPrimitive */ false,/* oneEnumeration */ false,/* manyEnumeration */ false,/* isControllingSide */ true,/* isComposite */ true,/* isInverseComposite */ false,/* label */ UmlgLabelConverterFactory.getUmlgLabelConverter().convert("A__"),/* isOneToOne */ true,/* isOneToMany */ false,/* isManyToOne */ false,/* isManyToMany */ false,/* upper */ 1,/* lower */ 1,/* inverseUpper */ 1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ false,/* isInverseOrdered */ false,/* isUnique */ true,/* isInverseUnique */ true,/* isDerived */ false,/* isNavigable */ true,/* propertyType */ SpaceTime.class,/* json */ "{\"name\": \"spaceTime\", \"associationClassOne\": false, \"memberEndOfAssociationClass\": false, \"associationClassPropertyName\": null, \"inverseAssociationClassPropertyName\": null, \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": false, \"readOnly\": false, \"dataTypeEnum\": null, \"validations\": null, \"qualifiedName\": \"umlgtest::org::umlg::concretetest::Universe::spaceTime\", \"persistentName\": \"spaceTime\", \"inverseName\": \"universe\", \"inverseQualifiedName\": \"umlgtest::org::umlg::componenttest::A__::universe\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": true, \"composite\": true, \"inverseComposite\": false, \"oneToOne\": true, \"oneToMany\": false, \"manyToOne\": false, \"manyToMany\": false, \"upper\": 1, \"lower\": 1, \"inverseUpper\": 1, \"label\": \"A__\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": false, \"inverseOrdered\": false, \"unique\": true, \"inverseUnique\": true, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false),
		rangeLength(/* qualifiedName */ "umlgtest::org::umlg::concretetest::Universe::rangeLength",/* persistentName */ "rangeLength",/* inverseName */ "inverseOf::rangeLength",/* inverseQualifiedName */ "inverseOf::umlgtest::org::umlg::concretetest::Universe::rangeLength",/* isAssociationClassOne */ false,/* isMemberEndOfAssociationClass */ false,/* associationClassPropertyNameField */ "null",/* inverseAssociationClassPropertyNameField */ "null",/* isAssociationClassProperty */ false,/* isOnePrimitivePropertyOfAssociationClass */ false,/* isOnePrimitive */ true,/* isReadOnly */ false,/* dataTypeEnum */ null,/* validations */ Arrays.asList(new RangeLength(5, 10)),/* isManyPrimitive */ false,/* oneEnumeration */ false,/* manyEnumeration */ false,/* isControllingSide */ true,/* isComposite */ false,/* isInverseComposite */ false,/* label */ UmlgLabelConverterFactory.getUmlgLabelConverter().convert("rangeLength"),/* isOneToOne */ false,/* isOneToMany */ false,/* isManyToOne */ true,/* isManyToMany */ false,/* upper */ 1,/* lower */ 0,/* inverseUpper */ 1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ false,/* isInverseOrdered */ false,/* isUnique */ true,/* isInverseUnique */ false,/* isDerived */ false,/* isNavigable */ true,/* propertyType */ String.class,/* json */ "{\"name\": \"rangeLength\", \"associationClassOne\": false, \"memberEndOfAssociationClass\": false, \"associationClassPropertyName\": null, \"inverseAssociationClassPropertyName\": null, \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": true, \"readOnly\": false, \"dataTypeEnum\": null, \"validations\": {\"rangeLength\": {\"min\": 5, \"max\": 10}}, \"qualifiedName\": \"umlgtest::org::umlg::concretetest::Universe::rangeLength\", \"persistentName\": \"rangeLength\", \"inverseName\": \"inverseOf::rangeLength\", \"inverseQualifiedName\": \"inverseOf::umlgtest::org::umlg::concretetest::Universe::rangeLength\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": true, \"composite\": false, \"inverseComposite\": false, \"oneToOne\": false, \"oneToMany\": false, \"manyToOne\": true, \"manyToMany\": false, \"upper\": 1, \"lower\": 0, \"inverseUpper\": 1, \"label\": \"rangeLength\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": false, \"inverseOrdered\": false, \"unique\": true, \"inverseUnique\": false, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false),
		range(/* qualifiedName */ "umlgtest::org::umlg::concretetest::Universe::range",/* persistentName */ "range",/* inverseName */ "inverseOf::range",/* inverseQualifiedName */ "inverseOf::umlgtest::org::umlg::concretetest::Universe::range",/* isAssociationClassOne */ false,/* isMemberEndOfAssociationClass */ false,/* associationClassPropertyNameField */ "null",/* inverseAssociationClassPropertyNameField */ "null",/* isAssociationClassProperty */ false,/* isOnePrimitivePropertyOfAssociationClass */ false,/* isOnePrimitive */ true,/* isReadOnly */ false,/* dataTypeEnum */ null,/* validations */ Arrays.asList(new RangeInteger(2, 4)),/* isManyPrimitive */ false,/* oneEnumeration */ false,/* manyEnumeration */ false,/* isControllingSide */ true,/* isComposite */ false,/* isInverseComposite */ false,/* label */ UmlgLabelConverterFactory.getUmlgLabelConverter().convert("range"),/* isOneToOne */ false,/* isOneToMany */ false,/* isManyToOne */ true,/* isManyToMany */ false,/* upper */ 1,/* lower */ 0,/* inverseUpper */ 1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ false,/* isInverseOrdered */ false,/* isUnique */ true,/* isInverseUnique */ false,/* isDerived */ false,/* isNavigable */ true,/* propertyType */ Integer.class,/* json */ "{\"name\": \"range\", \"associationClassOne\": false, \"memberEndOfAssociationClass\": false, \"associationClassPropertyName\": null, \"inverseAssociationClassPropertyName\": null, \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": true, \"readOnly\": false, \"dataTypeEnum\": null, \"validations\": {\"range\": {\"min\": 2, \"max\": 4}}, \"qualifiedName\": \"umlgtest::org::umlg::concretetest::Universe::range\", \"persistentName\": \"range\", \"inverseName\": \"inverseOf::range\", \"inverseQualifiedName\": \"inverseOf::umlgtest::org::umlg::concretetest::Universe::range\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": true, \"composite\": false, \"inverseComposite\": false, \"oneToOne\": false, \"oneToMany\": false, \"manyToOne\": true, \"manyToMany\": false, \"upper\": 1, \"lower\": 0, \"inverseUpper\": 1, \"label\": \"range\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": false, \"inverseOrdered\": false, \"unique\": true, \"inverseUnique\": false, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false),
		maxLength(/* qualifiedName */ "umlgtest::org::umlg::concretetest::Universe::maxLength",/* persistentName */ "maxLength",/* inverseName */ "inverseOf::maxLength",/* inverseQualifiedName */ "inverseOf::umlgtest::org::umlg::concretetest::Universe::maxLength",/* isAssociationClassOne */ false,/* isMemberEndOfAssociationClass */ false,/* associationClassPropertyNameField */ "null",/* inverseAssociationClassPropertyNameField */ "null",/* isAssociationClassProperty */ false,/* isOnePrimitivePropertyOfAssociationClass */ false,/* isOnePrimitive */ true,/* isReadOnly */ false,/* dataTypeEnum */ null,/* validations */ Arrays.asList(new MaxLength(10)),/* isManyPrimitive */ false,/* oneEnumeration */ false,/* manyEnumeration */ false,/* isControllingSide */ true,/* isComposite */ false,/* isInverseComposite */ false,/* label */ UmlgLabelConverterFactory.getUmlgLabelConverter().convert("maxLength"),/* isOneToOne */ false,/* isOneToMany */ false,/* isManyToOne */ true,/* isManyToMany */ false,/* upper */ 1,/* lower */ 0,/* inverseUpper */ 1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ false,/* isInverseOrdered */ false,/* isUnique */ true,/* isInverseUnique */ false,/* isDerived */ false,/* isNavigable */ true,/* propertyType */ String.class,/* json */ "{\"name\": \"maxLength\", \"associationClassOne\": false, \"memberEndOfAssociationClass\": false, \"associationClassPropertyName\": null, \"inverseAssociationClassPropertyName\": null, \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": true, \"readOnly\": false, \"dataTypeEnum\": null, \"validations\": {\"maxLength\": 10}, \"qualifiedName\": \"umlgtest::org::umlg::concretetest::Universe::maxLength\", \"persistentName\": \"maxLength\", \"inverseName\": \"inverseOf::maxLength\", \"inverseQualifiedName\": \"inverseOf::umlgtest::org::umlg::concretetest::Universe::maxLength\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": true, \"composite\": false, \"inverseComposite\": false, \"oneToOne\": false, \"oneToMany\": false, \"manyToOne\": true, \"manyToMany\": false, \"upper\": 1, \"lower\": 0, \"inverseUpper\": 1, \"label\": \"maxLength\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": false, \"inverseOrdered\": false, \"unique\": true, \"inverseUnique\": false, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false),
		testMinLength(/* qualifiedName */ "umlgtest::org::umlg::concretetest::Universe::testMinLength",/* persistentName */ "testMinLength",/* inverseName */ "inverseOf::testMinLength",/* inverseQualifiedName */ "inverseOf::umlgtest::org::umlg::concretetest::Universe::testMinLength",/* isAssociationClassOne */ false,/* isMemberEndOfAssociationClass */ false,/* associationClassPropertyNameField */ "null",/* inverseAssociationClassPropertyNameField */ "null",/* isAssociationClassProperty */ false,/* isOnePrimitivePropertyOfAssociationClass */ false,/* isOnePrimitive */ true,/* isReadOnly */ false,/* dataTypeEnum */ null,/* validations */ Arrays.asList(new MinLength(5)),/* isManyPrimitive */ false,/* oneEnumeration */ false,/* manyEnumeration */ false,/* isControllingSide */ true,/* isComposite */ false,/* isInverseComposite */ false,/* label */ UmlgLabelConverterFactory.getUmlgLabelConverter().convert("testMinLength"),/* isOneToOne */ false,/* isOneToMany */ false,/* isManyToOne */ true,/* isManyToMany */ false,/* upper */ 1,/* lower */ 0,/* inverseUpper */ 1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ false,/* isInverseOrdered */ false,/* isUnique */ true,/* isInverseUnique */ false,/* isDerived */ false,/* isNavigable */ true,/* propertyType */ String.class,/* json */ "{\"name\": \"testMinLength\", \"associationClassOne\": false, \"memberEndOfAssociationClass\": false, \"associationClassPropertyName\": null, \"inverseAssociationClassPropertyName\": null, \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": true, \"readOnly\": false, \"dataTypeEnum\": null, \"validations\": {\"minLength\": 5}, \"qualifiedName\": \"umlgtest::org::umlg::concretetest::Universe::testMinLength\", \"persistentName\": \"testMinLength\", \"inverseName\": \"inverseOf::testMinLength\", \"inverseQualifiedName\": \"inverseOf::umlgtest::org::umlg::concretetest::Universe::testMinLength\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": true, \"composite\": false, \"inverseComposite\": false, \"oneToOne\": false, \"oneToMany\": false, \"manyToOne\": true, \"manyToMany\": false, \"upper\": 1, \"lower\": 0, \"inverseUpper\": 1, \"label\": \"testMinLength\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": false, \"inverseOrdered\": false, \"unique\": true, \"inverseUnique\": false, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false),
		updatedOn(/* qualifiedName */ "umlglib::org::umlg::BaseModelUmlg::updatedOn",/* persistentName */ "updatedOn",/* inverseName */ "inverseOf::updatedOn",/* inverseQualifiedName */ "inverseOf::umlglib::org::umlg::BaseModelUmlg::updatedOn",/* isAssociationClassOne */ false,/* isMemberEndOfAssociationClass */ false,/* associationClassPropertyNameField */ "null",/* inverseAssociationClassPropertyNameField */ "null",/* isAssociationClassProperty */ false,/* isOnePrimitivePropertyOfAssociationClass */ false,/* isOnePrimitive */ false,/* isReadOnly */ false,/* dataTypeEnum */ DataTypeEnum.DateTime,/* validations */ Arrays.asList(new DateTimeValidation()),/* isManyPrimitive */ false,/* oneEnumeration */ false,/* manyEnumeration */ false,/* isControllingSide */ true,/* isComposite */ false,/* isInverseComposite */ false,/* label */ UmlgLabelConverterFactory.getUmlgLabelConverter().convert("updatedOn"),/* isOneToOne */ false,/* isOneToMany */ false,/* isManyToOne */ true,/* isManyToMany */ false,/* upper */ 1,/* lower */ 1,/* inverseUpper */ 1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ false,/* isInverseOrdered */ false,/* isUnique */ true,/* isInverseUnique */ false,/* isDerived */ false,/* isNavigable */ true,/* propertyType */ LocalDateTime.class,/* json */ "{\"name\": \"updatedOn\", \"associationClassOne\": false, \"memberEndOfAssociationClass\": false, \"associationClassPropertyName\": null, \"inverseAssociationClassPropertyName\": null, \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": false, \"readOnly\": false, \"dataTypeEnum\": \"" + DataTypeEnum.DateTime.toString() + "\", \"validations\": {\"dateTime\": {}}, \"qualifiedName\": \"umlglib::org::umlg::BaseModelUmlg::updatedOn\", \"persistentName\": \"updatedOn\", \"inverseName\": \"inverseOf::updatedOn\", \"inverseQualifiedName\": \"inverseOf::umlglib::org::umlg::BaseModelUmlg::updatedOn\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": true, \"composite\": false, \"inverseComposite\": false, \"oneToOne\": false, \"oneToMany\": false, \"manyToOne\": true, \"manyToMany\": false, \"upper\": 1, \"lower\": 1, \"inverseUpper\": 1, \"label\": \"updatedOn\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": false, \"inverseOrdered\": false, \"unique\": true, \"inverseUnique\": false, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false),
		god(/* qualifiedName */ "umlgtest::org::umlg::concretetest::A__::god",/* persistentName */ "god",/* inverseName */ "universe",/* inverseQualifiedName */ "umlgtest::org::umlg::concretetest::God::universe",/* isAssociationClassOne */ false,/* isMemberEndOfAssociationClass */ false,/* associationClassPropertyNameField */ "null",/* inverseAssociationClassPropertyNameField */ "null",/* isAssociationClassProperty */ false,/* isOnePrimitivePropertyOfAssociationClass */ false,/* isOnePrimitive */ false,/* isReadOnly */ false,/* dataTypeEnum */ null,/* validations */ Collections.emptyList(),/* isManyPrimitive */ false,/* oneEnumeration */ false,/* manyEnumeration */ false,/* isControllingSide */ false,/* isComposite */ false,/* isInverseComposite */ true,/* label */ UmlgLabelConverterFactory.getUmlgLabelConverter().convert("A__"),/* isOneToOne */ false,/* isOneToMany */ false,/* isManyToOne */ true,/* isManyToMany */ false,/* upper */ 1,/* lower */ 1,/* inverseUpper */ -1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ false,/* isInverseOrdered */ false,/* isUnique */ true,/* isInverseUnique */ true,/* isDerived */ false,/* isNavigable */ true,/* propertyType */ God.class,/* json */ "{\"name\": \"god\", \"associationClassOne\": false, \"memberEndOfAssociationClass\": false, \"associationClassPropertyName\": null, \"inverseAssociationClassPropertyName\": null, \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": false, \"readOnly\": false, \"dataTypeEnum\": null, \"validations\": null, \"qualifiedName\": \"umlgtest::org::umlg::concretetest::A__::god\", \"persistentName\": \"god\", \"inverseName\": \"universe\", \"inverseQualifiedName\": \"umlgtest::org::umlg::concretetest::God::universe\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": false, \"composite\": false, \"inverseComposite\": true, \"oneToOne\": false, \"oneToMany\": false, \"manyToOne\": true, \"manyToMany\": false, \"upper\": 1, \"lower\": 1, \"inverseUpper\": -1, \"label\": \"A__\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": false, \"inverseOrdered\": false, \"unique\": true, \"inverseUnique\": true, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false),
		nonNavigableMany(/* qualifiedName */ "umlgtest::org::umlg::navigability::A__::nonNavigableMany",/* persistentName */ "nonNavigableMany",/* inverseName */ "universe",/* inverseQualifiedName */ "umlgtest::org::umlg::navigability::A__::universe",/* isAssociationClassOne */ false,/* isMemberEndOfAssociationClass */ false,/* associationClassPropertyNameField */ "null",/* inverseAssociationClassPropertyNameField */ "null",/* isAssociationClassProperty */ false,/* isOnePrimitivePropertyOfAssociationClass */ false,/* isOnePrimitive */ false,/* isReadOnly */ false,/* dataTypeEnum */ null,/* validations */ Collections.emptyList(),/* isManyPrimitive */ false,/* oneEnumeration */ false,/* manyEnumeration */ false,/* isControllingSide */ true,/* isComposite */ false,/* isInverseComposite */ false,/* label */ UmlgLabelConverterFactory.getUmlgLabelConverter().convert("A__"),/* isOneToOne */ false,/* isOneToMany */ true,/* isManyToOne */ false,/* isManyToMany */ false,/* upper */ -1,/* lower */ 0,/* inverseUpper */ 1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ false,/* isInverseOrdered */ false,/* isUnique */ true,/* isInverseUnique */ true,/* isDerived */ false,/* isNavigable */ true,/* propertyType */ NonNavigableMany.class,/* json */ "{\"name\": \"nonNavigableMany\", \"associationClassOne\": false, \"memberEndOfAssociationClass\": false, \"associationClassPropertyName\": null, \"inverseAssociationClassPropertyName\": null, \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": false, \"readOnly\": false, \"dataTypeEnum\": null, \"validations\": null, \"qualifiedName\": \"umlgtest::org::umlg::navigability::A__::nonNavigableMany\", \"persistentName\": \"nonNavigableMany\", \"inverseName\": \"universe\", \"inverseQualifiedName\": \"umlgtest::org::umlg::navigability::A__::universe\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": true, \"composite\": false, \"inverseComposite\": false, \"oneToOne\": false, \"oneToMany\": true, \"manyToOne\": false, \"manyToMany\": false, \"upper\": -1, \"lower\": 0, \"inverseUpper\": 1, \"label\": \"A__\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": false, \"inverseOrdered\": false, \"unique\": true, \"inverseUnique\": true, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false),
		min(/* qualifiedName */ "umlgtest::org::umlg::concretetest::Universe::min",/* persistentName */ "min",/* inverseName */ "inverseOf::min",/* inverseQualifiedName */ "inverseOf::umlgtest::org::umlg::concretetest::Universe::min",/* isAssociationClassOne */ false,/* isMemberEndOfAssociationClass */ false,/* associationClassPropertyNameField */ "null",/* inverseAssociationClassPropertyNameField */ "null",/* isAssociationClassProperty */ false,/* isOnePrimitivePropertyOfAssociationClass */ false,/* isOnePrimitive */ true,/* isReadOnly */ false,/* dataTypeEnum */ null,/* validations */ Arrays.asList(new MinInteger(10)),/* isManyPrimitive */ false,/* oneEnumeration */ false,/* manyEnumeration */ false,/* isControllingSide */ true,/* isComposite */ false,/* isInverseComposite */ false,/* label */ UmlgLabelConverterFactory.getUmlgLabelConverter().convert("min"),/* isOneToOne */ false,/* isOneToMany */ false,/* isManyToOne */ true,/* isManyToMany */ false,/* upper */ 1,/* lower */ 0,/* inverseUpper */ 1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ false,/* isInverseOrdered */ false,/* isUnique */ true,/* isInverseUnique */ false,/* isDerived */ false,/* isNavigable */ true,/* propertyType */ Integer.class,/* json */ "{\"name\": \"min\", \"associationClassOne\": false, \"memberEndOfAssociationClass\": false, \"associationClassPropertyName\": null, \"inverseAssociationClassPropertyName\": null, \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": true, \"readOnly\": false, \"dataTypeEnum\": null, \"validations\": {\"min\": 10}, \"qualifiedName\": \"umlgtest::org::umlg::concretetest::Universe::min\", \"persistentName\": \"min\", \"inverseName\": \"inverseOf::min\", \"inverseQualifiedName\": \"inverseOf::umlgtest::org::umlg::concretetest::Universe::min\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": true, \"composite\": false, \"inverseComposite\": false, \"oneToOne\": false, \"oneToMany\": false, \"manyToOne\": true, \"manyToMany\": false, \"upper\": 1, \"lower\": 0, \"inverseUpper\": 1, \"label\": \"min\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": false, \"inverseOrdered\": false, \"unique\": true, \"inverseUnique\": false, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false),
		email(/* qualifiedName */ "umlgtest::org::umlg::concretetest::Universe::email",/* persistentName */ "email",/* inverseName */ "inverseOf::email",/* inverseQualifiedName */ "inverseOf::umlgtest::org::umlg::concretetest::Universe::email",/* isAssociationClassOne */ false,/* isMemberEndOfAssociationClass */ false,/* associationClassPropertyNameField */ "null",/* inverseAssociationClassPropertyNameField */ "null",/* isAssociationClassProperty */ false,/* isOnePrimitivePropertyOfAssociationClass */ false,/* isOnePrimitive */ false,/* isReadOnly */ false,/* dataTypeEnum */ DataTypeEnum.Email,/* validations */ Arrays.asList(new Email()),/* isManyPrimitive */ false,/* oneEnumeration */ false,/* manyEnumeration */ false,/* isControllingSide */ true,/* isComposite */ false,/* isInverseComposite */ false,/* label */ UmlgLabelConverterFactory.getUmlgLabelConverter().convert("email"),/* isOneToOne */ false,/* isOneToMany */ false,/* isManyToOne */ true,/* isManyToMany */ false,/* upper */ 1,/* lower */ 0,/* inverseUpper */ 1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ false,/* isInverseOrdered */ false,/* isUnique */ true,/* isInverseUnique */ false,/* isDerived */ false,/* isNavigable */ true,/* propertyType */ String.class,/* json */ "{\"name\": \"email\", \"associationClassOne\": false, \"memberEndOfAssociationClass\": false, \"associationClassPropertyName\": null, \"inverseAssociationClassPropertyName\": null, \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": false, \"readOnly\": false, \"dataTypeEnum\": \"" + DataTypeEnum.Email.toString() + "\", \"validations\": {\"email\": {}}, \"qualifiedName\": \"umlgtest::org::umlg::concretetest::Universe::email\", \"persistentName\": \"email\", \"inverseName\": \"inverseOf::email\", \"inverseQualifiedName\": \"inverseOf::umlgtest::org::umlg::concretetest::Universe::email\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": true, \"composite\": false, \"inverseComposite\": false, \"oneToOne\": false, \"oneToMany\": false, \"manyToOne\": true, \"manyToMany\": false, \"upper\": 1, \"lower\": 0, \"inverseUpper\": 1, \"label\": \"email\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": false, \"inverseOrdered\": false, \"unique\": true, \"inverseUnique\": false, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false),
		createdOn(/* qualifiedName */ "umlglib::org::umlg::BaseModelUmlg::createdOn",/* persistentName */ "createdOn",/* inverseName */ "inverseOf::createdOn",/* inverseQualifiedName */ "inverseOf::umlglib::org::umlg::BaseModelUmlg::createdOn",/* isAssociationClassOne */ false,/* isMemberEndOfAssociationClass */ false,/* associationClassPropertyNameField */ "null",/* inverseAssociationClassPropertyNameField */ "null",/* isAssociationClassProperty */ false,/* isOnePrimitivePropertyOfAssociationClass */ false,/* isOnePrimitive */ false,/* isReadOnly */ false,/* dataTypeEnum */ DataTypeEnum.DateTime,/* validations */ Arrays.asList(new DateTimeValidation()),/* isManyPrimitive */ false,/* oneEnumeration */ false,/* manyEnumeration */ false,/* isControllingSide */ true,/* isComposite */ false,/* isInverseComposite */ false,/* label */ UmlgLabelConverterFactory.getUmlgLabelConverter().convert("createdOn"),/* isOneToOne */ false,/* isOneToMany */ false,/* isManyToOne */ true,/* isManyToMany */ false,/* upper */ 1,/* lower */ 1,/* inverseUpper */ 1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ false,/* isInverseOrdered */ false,/* isUnique */ true,/* isInverseUnique */ false,/* isDerived */ false,/* isNavigable */ true,/* propertyType */ LocalDateTime.class,/* json */ "{\"name\": \"createdOn\", \"associationClassOne\": false, \"memberEndOfAssociationClass\": false, \"associationClassPropertyName\": null, \"inverseAssociationClassPropertyName\": null, \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": false, \"readOnly\": false, \"dataTypeEnum\": \"" + DataTypeEnum.DateTime.toString() + "\", \"validations\": {\"dateTime\": {}}, \"qualifiedName\": \"umlglib::org::umlg::BaseModelUmlg::createdOn\", \"persistentName\": \"createdOn\", \"inverseName\": \"inverseOf::createdOn\", \"inverseQualifiedName\": \"inverseOf::umlglib::org::umlg::BaseModelUmlg::createdOn\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": true, \"composite\": false, \"inverseComposite\": false, \"oneToOne\": false, \"oneToMany\": false, \"manyToOne\": true, \"manyToMany\": false, \"upper\": 1, \"lower\": 1, \"inverseUpper\": 1, \"label\": \"createdOn\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": false, \"inverseOrdered\": false, \"unique\": true, \"inverseUnique\": false, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false),
		name(/* qualifiedName */ "umlgtest::org::umlg::concretetest::Universe::name",/* persistentName */ "name",/* inverseName */ "inverseOf::name",/* inverseQualifiedName */ "inverseOf::umlgtest::org::umlg::concretetest::Universe::name",/* isAssociationClassOne */ false,/* isMemberEndOfAssociationClass */ false,/* associationClassPropertyNameField */ "null",/* inverseAssociationClassPropertyNameField */ "null",/* isAssociationClassProperty */ false,/* isOnePrimitivePropertyOfAssociationClass */ false,/* isOnePrimitive */ true,/* isReadOnly */ false,/* dataTypeEnum */ null,/* validations */ Collections.emptyList(),/* isManyPrimitive */ false,/* oneEnumeration */ false,/* manyEnumeration */ false,/* isControllingSide */ true,/* isComposite */ false,/* isInverseComposite */ false,/* label */ UmlgLabelConverterFactory.getUmlgLabelConverter().convert("name"),/* isOneToOne */ false,/* isOneToMany */ false,/* isManyToOne */ true,/* isManyToMany */ false,/* upper */ 1,/* lower */ 0,/* inverseUpper */ 1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ false,/* isInverseOrdered */ false,/* isUnique */ true,/* isInverseUnique */ false,/* isDerived */ false,/* isNavigable */ true,/* propertyType */ String.class,/* json */ "{\"name\": \"name\", \"associationClassOne\": false, \"memberEndOfAssociationClass\": false, \"associationClassPropertyName\": null, \"inverseAssociationClassPropertyName\": null, \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": true, \"readOnly\": false, \"dataTypeEnum\": null, \"validations\": null, \"qualifiedName\": \"umlgtest::org::umlg::concretetest::Universe::name\", \"persistentName\": \"name\", \"inverseName\": \"inverseOf::name\", \"inverseQualifiedName\": \"inverseOf::umlgtest::org::umlg::concretetest::Universe::name\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": true, \"composite\": false, \"inverseComposite\": false, \"oneToOne\": false, \"oneToMany\": false, \"manyToOne\": true, \"manyToMany\": false, \"upper\": 1, \"lower\": 0, \"inverseUpper\": 1, \"label\": \"name\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": false, \"inverseOrdered\": false, \"unique\": true, \"inverseUnique\": false, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false),
		nonNavigableOne(/* qualifiedName */ "umlgtest::org::umlg::navigability::A__::nonNavigableOne",/* persistentName */ "nonNavigableOne",/* inverseName */ "universe",/* inverseQualifiedName */ "umlgtest::org::umlg::navigability::A__::universe",/* isAssociationClassOne */ false,/* isMemberEndOfAssociationClass */ false,/* associationClassPropertyNameField */ "null",/* inverseAssociationClassPropertyNameField */ "null",/* isAssociationClassProperty */ false,/* isOnePrimitivePropertyOfAssociationClass */ false,/* isOnePrimitive */ false,/* isReadOnly */ false,/* dataTypeEnum */ null,/* validations */ Collections.emptyList(),/* isManyPrimitive */ false,/* oneEnumeration */ false,/* manyEnumeration */ false,/* isControllingSide */ false,/* isComposite */ false,/* isInverseComposite */ false,/* label */ UmlgLabelConverterFactory.getUmlgLabelConverter().convert("A__"),/* isOneToOne */ true,/* isOneToMany */ false,/* isManyToOne */ false,/* isManyToMany */ false,/* upper */ 1,/* lower */ 0,/* inverseUpper */ 1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ false,/* isInverseOrdered */ false,/* isUnique */ true,/* isInverseUnique */ true,/* isDerived */ false,/* isNavigable */ true,/* propertyType */ NonNavigableOne.class,/* json */ "{\"name\": \"nonNavigableOne\", \"associationClassOne\": false, \"memberEndOfAssociationClass\": false, \"associationClassPropertyName\": null, \"inverseAssociationClassPropertyName\": null, \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": false, \"readOnly\": false, \"dataTypeEnum\": null, \"validations\": null, \"qualifiedName\": \"umlgtest::org::umlg::navigability::A__::nonNavigableOne\", \"persistentName\": \"nonNavigableOne\", \"inverseName\": \"universe\", \"inverseQualifiedName\": \"umlgtest::org::umlg::navigability::A__::universe\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": false, \"composite\": false, \"inverseComposite\": false, \"oneToOne\": true, \"oneToMany\": false, \"manyToOne\": false, \"manyToMany\": false, \"upper\": 1, \"lower\": 0, \"inverseUpper\": 1, \"label\": \"A__\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": false, \"inverseOrdered\": false, \"unique\": true, \"inverseUnique\": true, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false),
		angel(/* qualifiedName */ "umlgtest::org::umlg::concretetest::A__::angel",/* persistentName */ "angel",/* inverseName */ "universe",/* inverseQualifiedName */ "umlgtest::org::umlg::concretetest::A__::universe",/* isAssociationClassOne */ false,/* isMemberEndOfAssociationClass */ false,/* associationClassPropertyNameField */ "null",/* inverseAssociationClassPropertyNameField */ "null",/* isAssociationClassProperty */ false,/* isOnePrimitivePropertyOfAssociationClass */ false,/* isOnePrimitive */ false,/* isReadOnly */ false,/* dataTypeEnum */ null,/* validations */ Collections.emptyList(),/* isManyPrimitive */ false,/* oneEnumeration */ false,/* manyEnumeration */ false,/* isControllingSide */ false,/* isComposite */ false,/* isInverseComposite */ false,/* label */ UmlgLabelConverterFactory.getUmlgLabelConverter().convert("A__"),/* isOneToOne */ true,/* isOneToMany */ false,/* isManyToOne */ false,/* isManyToMany */ false,/* upper */ 1,/* lower */ 0,/* inverseUpper */ 1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ false,/* isInverseOrdered */ false,/* isUnique */ true,/* isInverseUnique */ true,/* isDerived */ false,/* isNavigable */ true,/* propertyType */ Angel.class,/* json */ "{\"name\": \"angel\", \"associationClassOne\": false, \"memberEndOfAssociationClass\": false, \"associationClassPropertyName\": null, \"inverseAssociationClassPropertyName\": null, \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": false, \"readOnly\": false, \"dataTypeEnum\": null, \"validations\": null, \"qualifiedName\": \"umlgtest::org::umlg::concretetest::A__::angel\", \"persistentName\": \"angel\", \"inverseName\": \"universe\", \"inverseQualifiedName\": \"umlgtest::org::umlg::concretetest::A__::universe\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": false, \"composite\": false, \"inverseComposite\": false, \"oneToOne\": true, \"oneToMany\": false, \"manyToOne\": false, \"manyToMany\": false, \"upper\": 1, \"lower\": 0, \"inverseUpper\": 1, \"label\": \"A__\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": false, \"inverseOrdered\": false, \"unique\": true, \"inverseUnique\": true, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false),
		tag(/* qualifiedName */ "umlglib::org::umlg::tag::tag_baseUmlg_1::tag",/* persistentName */ "tag",/* inverseName */ "baseUmlg",/* inverseQualifiedName */ "umlglib::org::umlg::tag::Tag::baseUmlg",/* isAssociationClassOne */ false,/* isMemberEndOfAssociationClass */ false,/* associationClassPropertyNameField */ "null",/* inverseAssociationClassPropertyNameField */ "null",/* isAssociationClassProperty */ false,/* isOnePrimitivePropertyOfAssociationClass */ false,/* isOnePrimitive */ false,/* isReadOnly */ false,/* dataTypeEnum */ null,/* validations */ Collections.emptyList(),/* isManyPrimitive */ false,/* oneEnumeration */ false,/* manyEnumeration */ false,/* isControllingSide */ false,/* isComposite */ false,/* isInverseComposite */ false,/* label */ UmlgLabelConverterFactory.getUmlgLabelConverter().convert("tag_baseUmlg_1"),/* isOneToOne */ false,/* isOneToMany */ false,/* isManyToOne */ false,/* isManyToMany */ true,/* upper */ -1,/* lower */ 0,/* inverseUpper */ -1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ false,/* isInverseOrdered */ false,/* isUnique */ true,/* isInverseUnique */ true,/* isDerived */ false,/* isNavigable */ true,/* propertyType */ Tag.class,/* json */ "{\"name\": \"tag\", \"associationClassOne\": false, \"memberEndOfAssociationClass\": false, \"associationClassPropertyName\": null, \"inverseAssociationClassPropertyName\": null, \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": false, \"readOnly\": false, \"dataTypeEnum\": null, \"validations\": null, \"qualifiedName\": \"umlglib::org::umlg::tag::tag_baseUmlg_1::tag\", \"persistentName\": \"tag\", \"inverseName\": \"baseUmlg\", \"inverseQualifiedName\": \"umlglib::org::umlg::tag::Tag::baseUmlg\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": false, \"composite\": false, \"inverseComposite\": false, \"oneToOne\": false, \"oneToMany\": false, \"manyToOne\": false, \"manyToMany\": true, \"upper\": -1, \"lower\": 0, \"inverseUpper\": -1, \"label\": \"tag_baseUmlg_1\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": false, \"inverseOrdered\": false, \"unique\": true, \"inverseUnique\": true, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false),
		max(/* qualifiedName */ "umlgtest::org::umlg::concretetest::Universe::max",/* persistentName */ "max",/* inverseName */ "inverseOf::max",/* inverseQualifiedName */ "inverseOf::umlgtest::org::umlg::concretetest::Universe::max",/* isAssociationClassOne */ false,/* isMemberEndOfAssociationClass */ false,/* associationClassPropertyNameField */ "null",/* inverseAssociationClassPropertyNameField */ "null",/* isAssociationClassProperty */ false,/* isOnePrimitivePropertyOfAssociationClass */ false,/* isOnePrimitive */ true,/* isReadOnly */ false,/* dataTypeEnum */ null,/* validations */ Arrays.asList(new MaxInteger(100)),/* isManyPrimitive */ false,/* oneEnumeration */ false,/* manyEnumeration */ false,/* isControllingSide */ true,/* isComposite */ false,/* isInverseComposite */ false,/* label */ UmlgLabelConverterFactory.getUmlgLabelConverter().convert("max"),/* isOneToOne */ false,/* isOneToMany */ false,/* isManyToOne */ true,/* isManyToMany */ false,/* upper */ 1,/* lower */ 0,/* inverseUpper */ 1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ false,/* isInverseOrdered */ false,/* isUnique */ true,/* isInverseUnique */ false,/* isDerived */ false,/* isNavigable */ true,/* propertyType */ Integer.class,/* json */ "{\"name\": \"max\", \"associationClassOne\": false, \"memberEndOfAssociationClass\": false, \"associationClassPropertyName\": null, \"inverseAssociationClassPropertyName\": null, \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": true, \"readOnly\": false, \"dataTypeEnum\": null, \"validations\": {\"max\": 100}, \"qualifiedName\": \"umlgtest::org::umlg::concretetest::Universe::max\", \"persistentName\": \"max\", \"inverseName\": \"inverseOf::max\", \"inverseQualifiedName\": \"inverseOf::umlgtest::org::umlg::concretetest::Universe::max\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": true, \"composite\": false, \"inverseComposite\": false, \"oneToOne\": false, \"oneToMany\": false, \"manyToOne\": true, \"manyToMany\": false, \"upper\": 1, \"lower\": 0, \"inverseUpper\": 1, \"label\": \"max\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": false, \"inverseOrdered\": false, \"unique\": true, \"inverseUnique\": false, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false),
		demon(/* qualifiedName */ "umlgtest::org::umlg::concretetest::A__::demon",/* persistentName */ "demon",/* inverseName */ "universe",/* inverseQualifiedName */ "umlgtest::org::umlg::concretetest::A__::universe",/* isAssociationClassOne */ false,/* isMemberEndOfAssociationClass */ false,/* associationClassPropertyNameField */ "null",/* inverseAssociationClassPropertyNameField */ "null",/* isAssociationClassProperty */ false,/* isOnePrimitivePropertyOfAssociationClass */ false,/* isOnePrimitive */ false,/* isReadOnly */ false,/* dataTypeEnum */ null,/* validations */ Collections.emptyList(),/* isManyPrimitive */ false,/* oneEnumeration */ false,/* manyEnumeration */ false,/* isControllingSide */ true,/* isComposite */ false,/* isInverseComposite */ false,/* label */ UmlgLabelConverterFactory.getUmlgLabelConverter().convert("A__"),/* isOneToOne */ false,/* isOneToMany */ true,/* isManyToOne */ false,/* isManyToMany */ false,/* upper */ -1,/* lower */ 0,/* inverseUpper */ 1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ false,/* isInverseOrdered */ false,/* isUnique */ true,/* isInverseUnique */ true,/* isDerived */ false,/* isNavigable */ true,/* propertyType */ Demon.class,/* json */ "{\"name\": \"demon\", \"associationClassOne\": false, \"memberEndOfAssociationClass\": false, \"associationClassPropertyName\": null, \"inverseAssociationClassPropertyName\": null, \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": false, \"readOnly\": false, \"dataTypeEnum\": null, \"validations\": null, \"qualifiedName\": \"umlgtest::org::umlg::concretetest::A__::demon\", \"persistentName\": \"demon\", \"inverseName\": \"universe\", \"inverseQualifiedName\": \"umlgtest::org::umlg::concretetest::A__::universe\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": true, \"composite\": false, \"inverseComposite\": false, \"oneToOne\": false, \"oneToMany\": true, \"manyToOne\": false, \"manyToMany\": false, \"upper\": -1, \"lower\": 0, \"inverseUpper\": 1, \"label\": \"A__\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": false, \"inverseOrdered\": false, \"unique\": true, \"inverseUnique\": true, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false);
		private String _qualifiedName;
		private String _persistentName;
		private String _inverseName;
		private String _inverseQualifiedName;
		private boolean _associationClassOne;
		private boolean _memberEndOfAssociationClass;
		private String _associationClassPropertyName;
		private String _inverseAssociationClassPropertyName;
		private boolean _associationClassProperty;
		private boolean _onePrimitivePropertyOfAssociationClass;
		private boolean _onePrimitive;
		private Boolean _readOnly;
		private DataTypeEnum dataTypeEnum;
		private List validations;
		private boolean _manyPrimitive;
		private boolean _oneEnumeration;
		private boolean _manyEnumeration;
		private boolean _controllingSide;
		private boolean _composite;
		private boolean _inverseComposite;
		private String _label;
		private boolean _oneToOne;
		private boolean _oneToMany;
		private boolean _manyToOne;
		private boolean _manyToMany;
		private int _upper;
		private int _lower;
		private int _inverseUpper;
		private boolean _qualified;
		private boolean _inverseQualified;
		private boolean _ordered;
		private boolean _inverseOrdered;
		private boolean _unique;
		private boolean _inverseUnique;
		private boolean _derived;
		private boolean _navigability;
		private Class _propertyType;
		private String _json;
		private boolean _changeListener;
		/**
		 * constructor for UniverseRuntimePropertyEnum
		 * 
		 * @param _qualifiedName 
		 * @param _persistentName 
		 * @param _inverseName 
		 * @param _inverseQualifiedName 
		 * @param _associationClassOne 
		 * @param _memberEndOfAssociationClass 
		 * @param _associationClassPropertyName 
		 * @param _inverseAssociationClassPropertyName 
		 * @param _associationClassProperty 
		 * @param _onePrimitivePropertyOfAssociationClass 
		 * @param _onePrimitive 
		 * @param _readOnly 
		 * @param dataTypeEnum 
		 * @param validations 
		 * @param _manyPrimitive 
		 * @param _oneEnumeration 
		 * @param _manyEnumeration 
		 * @param _controllingSide 
		 * @param _composite 
		 * @param _inverseComposite 
		 * @param _label 
		 * @param _oneToOne 
		 * @param _oneToMany 
		 * @param _manyToOne 
		 * @param _manyToMany 
		 * @param _upper 
		 * @param _lower 
		 * @param _inverseUpper 
		 * @param _qualified 
		 * @param _inverseQualified 
		 * @param _ordered 
		 * @param _inverseOrdered 
		 * @param _unique 
		 * @param _inverseUnique 
		 * @param _derived 
		 * @param _navigability 
		 * @param _propertyType 
		 * @param _json 
		 * @param _changeListener 
		 */
		private UniverseRuntimePropertyEnum(String _qualifiedName, String _persistentName, String _inverseName, String _inverseQualifiedName, boolean _associationClassOne, boolean _memberEndOfAssociationClass, String _associationClassPropertyName, String _inverseAssociationClassPropertyName, boolean _associationClassProperty, boolean _onePrimitivePropertyOfAssociationClass, boolean _onePrimitive, Boolean _readOnly, DataTypeEnum dataTypeEnum, List validations, boolean _manyPrimitive, boolean _oneEnumeration, boolean _manyEnumeration, boolean _controllingSide, boolean _composite, boolean _inverseComposite, String _label, boolean _oneToOne, boolean _oneToMany, boolean _manyToOne, boolean _manyToMany, int _upper, int _lower, int _inverseUpper, boolean _qualified, boolean _inverseQualified, boolean _ordered, boolean _inverseOrdered, boolean _unique, boolean _inverseUnique, boolean _derived, boolean _navigability, Class _propertyType, String _json, boolean _changeListener)  {
			this._qualifiedName = _qualifiedName;
			this._persistentName = _persistentName;
			this._inverseName = _inverseName;
			this._inverseQualifiedName = _inverseQualifiedName;
			this._associationClassOne = _associationClassOne;
			this._memberEndOfAssociationClass = _memberEndOfAssociationClass;
			this._associationClassPropertyName = _associationClassPropertyName;
			this._inverseAssociationClassPropertyName = _inverseAssociationClassPropertyName;
			this._associationClassProperty = _associationClassProperty;
			this._onePrimitivePropertyOfAssociationClass = _onePrimitivePropertyOfAssociationClass;
			this._onePrimitive = _onePrimitive;
			this._readOnly = _readOnly;
			this.dataTypeEnum = dataTypeEnum;
			this.validations = validations;
			this._manyPrimitive = _manyPrimitive;
			this._oneEnumeration = _oneEnumeration;
			this._manyEnumeration = _manyEnumeration;
			this._controllingSide = _controllingSide;
			this._composite = _composite;
			this._inverseComposite = _inverseComposite;
			this._label = _label;
			this._oneToOne = _oneToOne;
			this._oneToMany = _oneToMany;
			this._manyToOne = _manyToOne;
			this._manyToMany = _manyToMany;
			this._upper = _upper;
			this._lower = _lower;
			this._inverseUpper = _inverseUpper;
			this._qualified = _qualified;
			this._inverseQualified = _inverseQualified;
			this._ordered = _ordered;
			this._inverseOrdered = _inverseOrdered;
			this._unique = _unique;
			this._inverseUnique = _inverseUnique;
			this._derived = _derived;
			this._navigability = _navigability;
			this._propertyType = _propertyType;
			this._json = _json;
			this._changeListener = _changeListener;
		}
	
		static public String asJson() {
			int count = 1;
			StringBuilder sb = new StringBuilder();;
			sb.append("{\"name\": \"Universe\", ");
			sb.append("\"qualifiedName\": \"umlgtest::org::umlg::concretetest::Universe\", ");
			sb.append("\"uri\": \"TODO\", ");
			sb.append("\"properties\": [");
			for ( UniverseRuntimePropertyEnum l : UniverseRuntimePropertyEnum.values() ) {
				sb.append(l.toJson());
				if ( count < UniverseRuntimePropertyEnum.values().length ) {
					count++;
					sb.append(",");
				}
			}
			sb.append("]}");
			return sb.toString();
		}
		
		static public UniverseRuntimePropertyEnum fromInverseQualifiedName(String inverseQualifiedName) {
			if ( demon.getInverseQualifiedName().equals(inverseQualifiedName) ) {
				return demon;
			}
			if ( max.getInverseQualifiedName().equals(inverseQualifiedName) ) {
				return max;
			}
			if ( tag.getInverseQualifiedName().equals(inverseQualifiedName) ) {
				return tag;
			}
			if ( angel.getInverseQualifiedName().equals(inverseQualifiedName) ) {
				return angel;
			}
			if ( nonNavigableOne.getInverseQualifiedName().equals(inverseQualifiedName) ) {
				return nonNavigableOne;
			}
			if ( name.getInverseQualifiedName().equals(inverseQualifiedName) ) {
				return name;
			}
			if ( createdOn.getInverseQualifiedName().equals(inverseQualifiedName) ) {
				return createdOn;
			}
			if ( email.getInverseQualifiedName().equals(inverseQualifiedName) ) {
				return email;
			}
			if ( min.getInverseQualifiedName().equals(inverseQualifiedName) ) {
				return min;
			}
			if ( nonNavigableMany.getInverseQualifiedName().equals(inverseQualifiedName) ) {
				return nonNavigableMany;
			}
			if ( god.getInverseQualifiedName().equals(inverseQualifiedName) ) {
				return god;
			}
			if ( updatedOn.getInverseQualifiedName().equals(inverseQualifiedName) ) {
				return updatedOn;
			}
			if ( testMinLength.getInverseQualifiedName().equals(inverseQualifiedName) ) {
				return testMinLength;
			}
			if ( maxLength.getInverseQualifiedName().equals(inverseQualifiedName) ) {
				return maxLength;
			}
			if ( range.getInverseQualifiedName().equals(inverseQualifiedName) ) {
				return range;
			}
			if ( rangeLength.getInverseQualifiedName().equals(inverseQualifiedName) ) {
				return rangeLength;
			}
			if ( spaceTime.getInverseQualifiedName().equals(inverseQualifiedName) ) {
				return spaceTime;
			}
			return null;
		}
		
		static public UniverseRuntimePropertyEnum fromLabel(String _label) {
			if ( demon.getLabel().equals(_label) ) {
				return demon;
			}
			if ( max.getLabel().equals(_label) ) {
				return max;
			}
			if ( tag.getLabel().equals(_label) ) {
				return tag;
			}
			if ( angel.getLabel().equals(_label) ) {
				return angel;
			}
			if ( nonNavigableOne.getLabel().equals(_label) ) {
				return nonNavigableOne;
			}
			if ( name.getLabel().equals(_label) ) {
				return name;
			}
			if ( createdOn.getLabel().equals(_label) ) {
				return createdOn;
			}
			if ( email.getLabel().equals(_label) ) {
				return email;
			}
			if ( min.getLabel().equals(_label) ) {
				return min;
			}
			if ( nonNavigableMany.getLabel().equals(_label) ) {
				return nonNavigableMany;
			}
			if ( god.getLabel().equals(_label) ) {
				return god;
			}
			if ( updatedOn.getLabel().equals(_label) ) {
				return updatedOn;
			}
			if ( testMinLength.getLabel().equals(_label) ) {
				return testMinLength;
			}
			if ( maxLength.getLabel().equals(_label) ) {
				return maxLength;
			}
			if ( range.getLabel().equals(_label) ) {
				return range;
			}
			if ( rangeLength.getLabel().equals(_label) ) {
				return rangeLength;
			}
			if ( spaceTime.getLabel().equals(_label) ) {
				return spaceTime;
			}
			return null;
		}
		
		static public UniverseRuntimePropertyEnum fromQualifiedName(String qualifiedName) {
			if ( demon.getQualifiedName().equals(qualifiedName) ) {
				return demon;
			}
			if ( max.getQualifiedName().equals(qualifiedName) ) {
				return max;
			}
			if ( tag.getQualifiedName().equals(qualifiedName) ) {
				return tag;
			}
			if ( angel.getQualifiedName().equals(qualifiedName) ) {
				return angel;
			}
			if ( nonNavigableOne.getQualifiedName().equals(qualifiedName) ) {
				return nonNavigableOne;
			}
			if ( name.getQualifiedName().equals(qualifiedName) ) {
				return name;
			}
			if ( createdOn.getQualifiedName().equals(qualifiedName) ) {
				return createdOn;
			}
			if ( email.getQualifiedName().equals(qualifiedName) ) {
				return email;
			}
			if ( min.getQualifiedName().equals(qualifiedName) ) {
				return min;
			}
			if ( nonNavigableMany.getQualifiedName().equals(qualifiedName) ) {
				return nonNavigableMany;
			}
			if ( god.getQualifiedName().equals(qualifiedName) ) {
				return god;
			}
			if ( updatedOn.getQualifiedName().equals(qualifiedName) ) {
				return updatedOn;
			}
			if ( testMinLength.getQualifiedName().equals(qualifiedName) ) {
				return testMinLength;
			}
			if ( maxLength.getQualifiedName().equals(qualifiedName) ) {
				return maxLength;
			}
			if ( range.getQualifiedName().equals(qualifiedName) ) {
				return range;
			}
			if ( rangeLength.getQualifiedName().equals(qualifiedName) ) {
				return rangeLength;
			}
			if ( spaceTime.getQualifiedName().equals(qualifiedName) ) {
				return spaceTime;
			}
			return null;
		}
		
		public String getAssociationClassPropertyName() {
			return this._associationClassPropertyName;
		}
		
		public DataTypeEnum getDataTypeEnum() {
			return this.dataTypeEnum;
		}
		
		public String getInverseAssociationClassPropertyName() {
			return this._inverseAssociationClassPropertyName;
		}
		
		public String getInverseName() {
			return this._inverseName;
		}
		
		public String getInverseQualifiedName() {
			return this._inverseQualifiedName;
		}
		
		public int getInverseUpper() {
			return this._inverseUpper;
		}
		
		public String getJson() {
			return this._json;
		}
		
		public String getLabel() {
			return this._label;
		}
		
		public int getLower() {
			return this._lower;
		}
		
		public String getPersistentName() {
			return this._persistentName;
		}
		
		public Class getPropertyType() {
			return this._propertyType;
		}
		
		public String getQualifiedName() {
			return this._qualifiedName;
		}
		
		public Boolean getReadOnly() {
			return this._readOnly;
		}
		
		public int getUpper() {
			return this._upper;
		}
		
		public List getValidations() {
			return this.validations;
		}
		
		public boolean isAssociationClassOne() {
			return this._associationClassOne;
		}
		
		public boolean isAssociationClassProperty() {
			return this._associationClassProperty;
		}
		
		public boolean isChangeListener() {
			return this._changeListener;
		}
		
		public boolean isComposite() {
			return this._composite;
		}
		
		public boolean isControllingSide() {
			return this._controllingSide;
		}
		
		public boolean isDerived() {
			return this._derived;
		}
		
		public boolean isInverseComposite() {
			return this._inverseComposite;
		}
		
		public boolean isInverseOrdered() {
			return this._inverseOrdered;
		}
		
		public boolean isInverseQualified() {
			return this._inverseQualified;
		}
		
		public boolean isInverseUnique() {
			return this._inverseUnique;
		}
		
		public boolean isManyEnumeration() {
			return this._manyEnumeration;
		}
		
		public boolean isManyPrimitive() {
			return this._manyPrimitive;
		}
		
		public boolean isManyToMany() {
			return this._manyToMany;
		}
		
		public boolean isManyToOne() {
			return this._manyToOne;
		}
		
		public boolean isMemberEndOfAssociationClass() {
			return this._memberEndOfAssociationClass;
		}
		
		public boolean isNavigability() {
			return this._navigability;
		}
		
		public boolean isOneEnumeration() {
			return this._oneEnumeration;
		}
		
		public boolean isOnePrimitive() {
			return this._onePrimitive;
		}
		
		public boolean isOnePrimitivePropertyOfAssociationClass() {
			return this._onePrimitivePropertyOfAssociationClass;
		}
		
		public boolean isOneToMany() {
			return this._oneToMany;
		}
		
		public boolean isOneToOne() {
			return this._oneToOne;
		}
		
		public boolean isOrdered() {
			return this._ordered;
		}
		
		public boolean isQualified() {
			return this._qualified;
		}
		
		public boolean isUnique() {
			return this._unique;
		}
		
		@Override
		public boolean isValid(int elementCount) {
			if ( isQualified() ) {
				return elementCount >= getLower();
			} else {
				return (getUpper() == -1 || elementCount <= getUpper()) && elementCount >= getLower();
			}
		}
		
		@Override
		public String toJson() {
			return getJson();
		}
	
	
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy