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

org.umlg.associationclass.Person Maven / Gradle / Ivy

There is a newer version: 1.2.5
Show newest version
package org.umlg.associationclass;

import com.fasterxml.jackson.databind.ObjectMapper;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;

import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.tinkerpop.gremlin.structure.Edge;
import org.apache.tinkerpop.gremlin.structure.Vertex;
import org.umlg.associationclass.meta.PersonMeta;
import org.umlg.runtime.adaptor.TransactionThreadEntityVar;
import org.umlg.runtime.adaptor.UMLG;
import org.umlg.runtime.adaptor.UmlgLabelConverterFactory;
import org.umlg.runtime.adaptor.UmlgTmpIdManager;
import org.umlg.runtime.collection.Filter;
import org.umlg.runtime.collection.Qualifier;
import org.umlg.runtime.collection.UmlgOrderedSet;
import org.umlg.runtime.collection.UmlgPropertyAssociationClassOrderedSet;
import org.umlg.runtime.collection.UmlgPropertyAssociationClassSet;
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.UmlgAssociationClassOrderedSetImpl;
import org.umlg.runtime.collection.persistent.UmlgAssociationClassSetImpl;
import org.umlg.runtime.collection.persistent.UmlgPropertyAssociationClassOrderedSetImpl;
import org.umlg.runtime.collection.persistent.UmlgPropertyAssociationClassSetImpl;
import org.umlg.runtime.collection.persistent.UmlgSetImpl;
import org.umlg.runtime.domain.BaseUmlgCompositionNode;
import org.umlg.runtime.domain.CompositionNode;
import org.umlg.runtime.domain.DataTypeEnum;
import org.umlg.runtime.domain.UmlgMetaNode;
import org.umlg.runtime.domain.UmlgNode;
import org.umlg.runtime.domain.UmlgRootNode;
import org.umlg.runtime.util.ObjectMapperFactory;
import org.umlg.runtime.util.Pair;
import org.umlg.runtime.validation.UmlgConstraintViolation;
import org.umlg.runtime.validation.UmlgConstraintViolationException;
import org.umlg.runtime.validation.UmlgValidation;

public class Person extends BaseUmlgCompositionNode implements UmlgRootNode, CompositionNode {
	static final public long serialVersionUID = 1L;
	private UmlgSet name;
	private UmlgPropertyAssociationClassOrderedSet knownBy;
	private UmlgOrderedSet Friendship_knownBy;
	private UmlgPropertyAssociationClassOrderedSet knows;
	private UmlgOrderedSet Friendship_knows;
	private UmlgPropertyAssociationClassSet company;
	private UmlgSet Job;
	private String tmpId;	// tmpId is only used the umlg restlet gui. It is never persisted. Its value is generated by the gui.

	/**
	 * constructor for Person
	 * 
	 * @param id 
	 */
	public Person(Object id)  {
		super(id);
	}
	
	/**
	 * constructor for Person
	 * 
	 * @param vertex 
	 */
	public Person(Vertex vertex)  {
		super(vertex);
	}
	
	/**
	 * default constructor for Person
	 */
	public Person()  {
		this(true);
	}
	
	/**
	 * constructor for Person
	 * 
	 * @param persistent 
	 */
	public Person(Boolean persistent)  {
		super(persistent);
		Edge edge = UMLG.get().getRoot().addEdge(getEdgeToRootLabel(), this.vertex);
		edge.property("inClass", this.getClass().getName());
	}

	public void addToCompany(Company company, Job job) {
		if ( company != null ) {
			this.company.add(company, job);
		}
	}
	
	public void addToCompany(UmlgSet> Job) {
		for ( Pair pair : Job ) {
			addToCompany(pair.getFirst(), pair.getSecond());
		}
	}
	
	public void addToCompanyIgnoreInverse(Company company, Job job) {
		if ( company != null ) {
			this.company.add(company, job);
		}
	}
	
	public void addToKnownBy(Person knownBy, Friendship friendship) {
		if ( knownBy != null ) {
			this.knownBy.add(knownBy, friendship);
		}
	}
	
	public void addToKnownBy(UmlgOrderedSet> Friendship_knownBy) {
		for ( Pair pair : Friendship_knownBy ) {
			addToKnownBy(pair.getFirst(), pair.getSecond());
		}
	}
	
	public void addToKnownBy(int index, Person knownBy, Friendship friendship) {
		if ( knownBy != null ) {
			this.knownBy.add(index, knownBy, friendship);
		}
	}
	
	public void addToKnownBy(int index, UmlgOrderedSet> Friendship_knownBy) {
		for ( Pair pair : Friendship_knownBy ) {
			addToKnownBy(pair.getFirst(), pair.getSecond());
		}
	}
	
	public void addToKnownByIgnoreInverse(Person knownBy, Friendship friendship) {
		if ( knownBy != null ) {
			this.knownBy.add(knownBy, friendship);
		}
	}
	
	public void addToKnows(Person knows, Friendship friendship) {
		if ( knows != null ) {
			this.knows.add(knows, friendship);
		}
	}
	
	public void addToKnows(UmlgOrderedSet> Friendship_knows) {
		for ( Pair pair : Friendship_knows ) {
			addToKnows(pair.getFirst(), pair.getSecond());
		}
	}
	
	public void addToKnows(int index, Person knows, Friendship friendship) {
		if ( knows != null ) {
			this.knows.add(index, knows, friendship);
		}
	}
	
	public void addToKnows(int index, UmlgOrderedSet> Friendship_knows) {
		for ( Pair pair : Friendship_knows ) {
			addToKnows(pair.getFirst(), pair.getSecond());
		}
	}
	
	public void addToKnowsIgnoreInverse(Person knows, Friendship friendship) {
		if ( knows != null ) {
			this.knows.add(knows, friendship);
		}
	}
	
	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);
			}
		}
	}
	
	static public UmlgSet allInstances(Filter filter) {
		UmlgSet result = new UmlgMemorySet();
		result.addAll(UMLG.get().allInstances(Person.class.getName(), filter));
		return result;
	}
	
	static public UmlgSet allInstances() {
		UmlgSet result = new UmlgMemorySet();
		result.addAll(UMLG.get().allInstances(Person.class.getName()));
		return result;
	}
	
	@Override
	public List checkClassConstraints() {
		List result = new ArrayList();
		return result;
	}
	
	public void clearCompany() {
		this.company.clear();
		this.Job =  new UmlgAssociationClassSetImpl(this, PersonRuntimePropertyEnum.company);
	}
	
	public void clearKnownBy() {
		this.knownBy.clear();
		this.Friendship_knownBy =  new UmlgAssociationClassOrderedSetImpl(this, PersonRuntimePropertyEnum.knownBy);
	}
	
	public void clearKnows() {
		this.knows.clear();
		this.Friendship_knows =  new UmlgAssociationClassOrderedSetImpl(this, PersonRuntimePropertyEnum.knows);
	}
	
	public void clearName() {
		this.name.clear();
	}
	
	@Override
	public void delete() {
		this.knownBy.clear();
		this.company.clear();
		this.knows.clear();
		TransactionThreadEntityVar.remove(this);
		this.vertex.remove();
	}
	
	@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);
		}
	}
	
	@Override
	public void fromJsonDataTypeAndComposite(Map propertyMap) {
		if ( propertyMap.containsKey("name") ) {
			if ( propertyMap.get("name") != null ) {
				String name = (String)propertyMap.get("name");
				setName(name);
			} else {
				setName(null);
			}
		}
		if ( propertyMap.containsKey("tmpId") ) {
			if ( propertyMap.get("tmpId") != null ) {
				this.tmpId = (String)propertyMap.get("tmpId");
				UmlgTmpIdManager.INSTANCE.put(this.tmpId, getId());
			} else {
				this.tmpId = null;
			}
		}
	}
	
	@Override
	public void fromJsonNonCompositeOne(Map propertyMap) {
	}
	
	@Override
	public void fromJsonNonCompositeRequiredMany(Map propertyMap) {
	}
	
	public UmlgPropertyAssociationClassSet getCompany() {
		return this.company;
	}
	
	public String getEdgeToRootLabel() {
		return UmlgLabelConverterFactory.getUmlgLabelConverter().convert("root_Person");
	}
	
	public UmlgOrderedSet getFriendship_knownBy() {
		return this.Friendship_knownBy;
	}
	
	public Friendship getFriendship_knownBy_knownBy(Person knownBy) {
		for ( Friendship ac : this.Friendship_knownBy ) {
			if ( ac.getKnownBy().equals(knownBy) ) {
				return ac;
			}
		}
		return null;
	}
	
	public UmlgOrderedSet getFriendship_knows() {
		return this.Friendship_knows;
	}
	
	public Friendship getFriendship_knows_knows(Person knows) {
		for ( Friendship ac : this.Friendship_knows ) {
			if ( ac.getKnows().equals(knows) ) {
				return ac;
			}
		}
		return null;
	}
	
	public UmlgSet getJob() {
		return this.Job;
	}
	
	public Job getJob_company(Company company) {
		for ( Job ac : this.Job ) {
			if ( ac.getCompany().equals(company) ) {
				return ac;
			}
		}
		return null;
	}
	
	public UmlgPropertyAssociationClassOrderedSet getKnownBy() {
		return this.knownBy;
	}
	
	/**
	 * Implements the ocl statement for derived property 'knownByFriendship'
	 * 
	 * package testoclmodel::org::umlg::associationclass
	 *     context Person::knownByFriendship : OrderedSet(testoclmodel::org::umlg::associationclass::Friendship)
	 *     derive: self.friendship[knownBy]
	 * endpackage
	 * 
*/ public UmlgOrderedSet getKnownByFriendship() { return this.getFriendship_knownBy(); } public UmlgPropertyAssociationClassOrderedSet getKnows() { return this.knows; } /** * Implements the ocl statement for derived property 'knowsFriendship' *
	 * package testoclmodel::org::umlg::associationclass
	 *     context Person::knowsFriendship : OrderedSet(testoclmodel::org::umlg::associationclass::Friendship)
	 *     derive: self.friendship[knows]
	 * endpackage
	 * 
*/ public UmlgOrderedSet getKnowsFriendship() { return this.getFriendship_knows(); } @Override public String getMetaDataAsJson() { return Person.PersonRuntimePropertyEnum.asJson(); } public UmlgMetaNode getMetaNode() { return PersonMeta.getInstance(); } public String getName() { UmlgSet tmp = this.name; if ( !tmp.isEmpty() ) { return tmp.iterator().next(); } else { return null; } } @Override public UmlgNode getOwningObject() { return null; } @Override public String getQualifiedName() { return "testoclmodel::org::umlg::associationclass::Person"; } /** * 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 = Collections.emptyList(); PersonRuntimePropertyEnum runtimeProperty; if ( !inverse ) { runtimeProperty = PersonRuntimePropertyEnum.fromQualifiedName(tumlRuntimeProperty.getQualifiedName()); } else { runtimeProperty = PersonRuntimePropertyEnum.fromQualifiedName(tumlRuntimeProperty.getInverseQualifiedName()); } if ( runtimeProperty != null && result.isEmpty() ) { switch ( runtimeProperty ) { default: result = Collections.emptyList(); } } return result; } /** * getSize is called from the BaseCollection.addInternal in order to save the sice 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 = 0; PersonRuntimePropertyEnum runtimeProperty; if ( !inverse ) { runtimeProperty = PersonRuntimePropertyEnum.fromQualifiedName(tumlRuntimeProperty.getQualifiedName()); } else { runtimeProperty = PersonRuntimePropertyEnum.fromQualifiedName(tumlRuntimeProperty.getInverseQualifiedName()); } if ( runtimeProperty != null && result == 0 ) { switch ( runtimeProperty ) { case knownBy: result = knownBy.size(); break; case name: result = name.size(); break; case company: result = company.size(); break; case knows: result = knows.size(); break; default: result = 0; } } return result; } @Override public String getUid() { String uid; if ( !this.vertex.property("uid").isPresent() ) { uid=UUID.randomUUID().toString(); this.vertex.property("uid", uid); } else { uid=this.vertex.value("uid"); } return uid; } @Override public boolean hasOnlyOneCompositeParent() { int result = 0; return result == 1; } public void initVariables() { setName(""); } @Override public void initialiseProperties() { this.knownBy = new UmlgPropertyAssociationClassOrderedSetImpl(this, PersonRuntimePropertyEnum.knownBy, PersonRuntimePropertyEnum.Friendship_knownBy); this.Friendship_knownBy = new UmlgAssociationClassOrderedSetImpl(this, PersonRuntimePropertyEnum.knownBy); this.name = new UmlgSetImpl(this, PersonRuntimePropertyEnum.name); this.company = new UmlgPropertyAssociationClassSetImpl(this, PersonRuntimePropertyEnum.company, PersonRuntimePropertyEnum.Job); this.Job = new UmlgAssociationClassSetImpl(this, PersonRuntimePropertyEnum.company); this.knows = new UmlgPropertyAssociationClassOrderedSetImpl(this, PersonRuntimePropertyEnum.knows, PersonRuntimePropertyEnum.Friendship_knows); this.Friendship_knows = new UmlgAssociationClassOrderedSetImpl(this, PersonRuntimePropertyEnum.knows); } @Override public void initialiseProperty(UmlgRuntimeProperty tumlRuntimeProperty, boolean inverse) { PersonRuntimePropertyEnum runtimeProperty; if ( !inverse ) { runtimeProperty = (PersonRuntimePropertyEnum.fromQualifiedName(tumlRuntimeProperty.getQualifiedName())); } else { runtimeProperty = (PersonRuntimePropertyEnum.fromQualifiedName(tumlRuntimeProperty.getInverseQualifiedName())); } if ( runtimeProperty != null ) { switch ( runtimeProperty ) { case knownBy: this.knownBy = new UmlgPropertyAssociationClassOrderedSetImpl(this, PersonRuntimePropertyEnum.knownBy, PersonRuntimePropertyEnum.Friendship_knownBy); this.Friendship_knownBy = new UmlgAssociationClassOrderedSetImpl(this, PersonRuntimePropertyEnum.knownBy); break; case name: this.name = new UmlgSetImpl(this, PersonRuntimePropertyEnum.name); break; case company: this.company = new UmlgPropertyAssociationClassSetImpl(this, PersonRuntimePropertyEnum.company, PersonRuntimePropertyEnum.Job); this.Job = new UmlgAssociationClassSetImpl(this, PersonRuntimePropertyEnum.company); break; case knows: this.knows = new UmlgPropertyAssociationClassOrderedSetImpl(this, PersonRuntimePropertyEnum.knows, PersonRuntimePropertyEnum.Friendship_knows); this.Friendship_knows = new UmlgAssociationClassOrderedSetImpl(this, PersonRuntimePropertyEnum.knows); break; } } } @Override public UmlgRuntimeProperty inverseAdder(UmlgRuntimeProperty tumlRuntimeProperty, boolean inverse, UmlgNode umlgNode) { PersonRuntimePropertyEnum runtimeProperty; if ( !inverse ) { runtimeProperty = (PersonRuntimePropertyEnum.fromQualifiedName(tumlRuntimeProperty.getQualifiedName())); } else { runtimeProperty = (PersonRuntimePropertyEnum.fromQualifiedName(tumlRuntimeProperty.getInverseQualifiedName())); } if ( runtimeProperty != null ) { switch ( runtimeProperty ) { case knownBy: this.knownBy.inverseAdder((Person)umlgNode); break; case Friendship_knownBy: this.Friendship_knownBy.inverseAdder((Friendship)umlgNode); break; case company: this.company.inverseAdder((Company)umlgNode); break; case Job: this.Job.inverseAdder((Job)umlgNode); break; case knows: this.knows.inverseAdder((Person)umlgNode); break; case Friendship_knows: this.Friendship_knows.inverseAdder((Friendship)umlgNode); break; } return runtimeProperty; } else { return null; } } @Override public boolean isTinkerRoot() { return true; } public UmlgSet lookupFor_knownBy_knows() { UmlgSet result = new UmlgMemorySet(); Filter filter = new Filter() { @Override public boolean filter(Person entity){ return !entity.getKnownBy().contains(Person.this); } }; result.addAll(org.umlg.associationclass.Person.allInstances(filter)); return result; } public UmlgSet lookupFor_knows_knownBy() { UmlgSet result = new UmlgMemorySet(); Filter filter = new Filter() { @Override public boolean filter(Person entity){ return !entity.getKnows().contains(Person.this); } }; result.addAll(org.umlg.associationclass.Person.allInstances(filter)); return result; } public UmlgSet lookupFor_person_company() { UmlgSet result = new UmlgMemorySet(); Filter filter = new Filter() { @Override public boolean filter(Company entity){ return !entity.getPerson().contains(Person.this); } }; result.addAll(org.umlg.associationclass.Company.allInstances(filter)); return result; } public void moveKnownBy(Integer index, Person knownBy) { if ( knownBy != null ) { this.knownBy.move(index, knownBy, this.getFriendship_knownBy_knownBy(knownBy)); this.Friendship_knownBy = new UmlgAssociationClassOrderedSetImpl(this, PersonRuntimePropertyEnum.knownBy); } } public void moveKnows(Integer index, Person knows) { if ( knows != null ) { this.knows.move(index, knows, this.getFriendship_knows_knows(knows)); this.Friendship_knows = new UmlgAssociationClassOrderedSetImpl(this, PersonRuntimePropertyEnum.knows); } } public void removeFromCompany(Company company) { if ( company != null ) { this.company.remove(company); this.Job = new UmlgAssociationClassSetImpl(this, PersonRuntimePropertyEnum.company); } } public void removeFromCompany(UmlgSet company) { if ( !company.isEmpty() ) { this.company.removeAll(company); this.Job = new UmlgAssociationClassSetImpl(this, PersonRuntimePropertyEnum.company); } } public void removeFromKnownBy(Person knownBy) { if ( knownBy != null ) { this.knownBy.remove(knownBy); this.Friendship_knownBy = new UmlgAssociationClassOrderedSetImpl(this, PersonRuntimePropertyEnum.knownBy); } } public void removeFromKnownBy(UmlgOrderedSet knownBy) { if ( !knownBy.isEmpty() ) { this.knownBy.removeAll(knownBy); this.Friendship_knownBy = new UmlgAssociationClassOrderedSetImpl(this, PersonRuntimePropertyEnum.knownBy); } } public void removeFromKnows(Person knows) { if ( knows != null ) { this.knows.remove(knows); this.Friendship_knows = new UmlgAssociationClassOrderedSetImpl(this, PersonRuntimePropertyEnum.knows); } } public void removeFromKnows(UmlgOrderedSet knows) { if ( !knows.isEmpty() ) { this.knows.removeAll(knows); this.Friendship_knows = new UmlgAssociationClassOrderedSetImpl(this, PersonRuntimePropertyEnum.knows); } } 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 setCompany(UmlgSet> Job) { clearCompany(); if ( Job != null ) { addToCompany(Job); } } public void setKnownBy(UmlgOrderedSet> Friendship_knownBy) { clearKnownBy(); if ( Friendship_knownBy != null ) { addToKnownBy(Friendship_knownBy); } } public void setKnows(UmlgOrderedSet> Friendship_knows) { clearKnows(); if ( Friendship_knows != null ) { addToKnows(Friendship_knows); } } public void setName(String name) { clearName(); addToName(name); } /** * deep indicates that components also be serialized. * * @param deep */ @Override public String toJson(Boolean deep) { StringBuilder sb = new StringBuilder(); if ( this.tmpId != null ) { sb.append("\"tmpId\": \"" + this.tmpId + "\", "); } sb.append("\"id\": \"" + getId() + "\", "); sb.append("\"metaNodeId\": \"" + getMetaNode().getId() + "\", "); sb.append("\"name\": " + (getName() != null ? "\"" + StringEscapeUtils.escapeJson(getName()) + "\"" : null )); sb.append(", "); sb.append("\"qualifiedName\": \"" + getQualifiedName() + "\""); sb.append(", "); //PlaceHolder for restful sb.append("\"uri\": {}"); 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) { StringBuilder sb = new StringBuilder(); if ( this.tmpId != null ) { sb.append("\"tmpId\": \"" + this.tmpId + "\", "); } sb.append("\"id\": \"" + getId() + "\", "); sb.append("\"metaNodeId\": \"" + getMetaNode().getId() + "\", "); sb.append("\"name\": " + (getName() != null ? "\"" + StringEscapeUtils.escapeJson(getName()) + "\"" : null )); sb.append(", "); sb.append("\"qualifiedName\": \"" + getQualifiedName() + "\""); sb.append(", "); //PlaceHolder for restful sb.append("\"uri\": {}"); sb.insert(0, "{"); sb.append("}"); return sb.toString(); } @Override public String toJsonWithoutCompositeParent() { return toJsonWithoutCompositeParent(false); } @Override public List validateMultiplicities() { List result = new ArrayList(); if ( getName() == null ) { result.add(new UmlgConstraintViolation("multiplicity", "testoclmodel::org::umlg::associationclass::Person::name", "lower multiplicity is 1")); } return result; } public List validateName(String name) { List result = new ArrayList(); return result; } static public enum PersonRuntimePropertyEnum implements UmlgRuntimeProperty { knownBy(/* qualifiedName */ "testoclmodel::org::umlg::associationclass::Person::knownBy",/* persistentName */ "knownBy",/* inverseName */ "knows",/* inverseQualifiedName */ "testoclmodel::org::umlg::associationclass::Person::knows",/* isAssociationClassOne */ false,/* isMemberEndOfAssociationClass */ true,/* associationClassPropertyNameField */ "Friendship_knownBy",/* inverseAssociationClassPropertyNameField */ "Friendship_knows",/* 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("Friendship"),/* isOneToOne */ false,/* isOneToMany */ false,/* isManyToOne */ false,/* isManyToMany */ true,/* upper */ -1,/* lower */ 0,/* inverseUpper */ -1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ true,/* isInverseOrdered */ true,/* isUnique */ true,/* isInverseUnique */ true,/* isDerived */ false,/* isNavigable */ true,/* propertyType */ Person.class,/* json */ "{\"name\": \"knownBy\", \"associationClassOne\": false, \"memberEndOfAssociationClass\": true, \"associationClassPropertyName\": \"Friendship_knownBy\", \"inverseAssociationClassPropertyName\": \"Friendship_knows\", \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": false, \"readOnly\": false, \"dataTypeEnum\": null, \"validations\": null, \"qualifiedName\": \"testoclmodel::org::umlg::associationclass::Person::knownBy\", \"persistentName\": \"knownBy\", \"inverseName\": \"knows\", \"inverseQualifiedName\": \"testoclmodel::org::umlg::associationclass::Person::knows\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": true, \"composite\": false, \"inverseComposite\": false, \"oneToOne\": false, \"oneToMany\": false, \"manyToOne\": false, \"manyToMany\": true, \"upper\": -1, \"lower\": 0, \"inverseUpper\": -1, \"label\": \"Friendship\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": true, \"inverseOrdered\": true, \"unique\": true, \"inverseUnique\": true, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false), Friendship_knownBy(/* qualifiedName */ "testoclmodel::org::umlg::associationclass::Person::knownByAC",/* persistentName */ "knownByAC",/* inverseName */ "knows",/* inverseQualifiedName */ "testoclmodel::org::umlg::associationclass::Person::knowsAC",/* isAssociationClassOne */ true,/* isMemberEndOfAssociationClass */ false,/* associationClassPropertyNameField */ "Friendship_knownBy",/* inverseAssociationClassPropertyNameField */ "Friendship_knows",/* 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("Friendship_AC"),/* isOneToOne */ false,/* isOneToMany */ false,/* isManyToOne */ false,/* isManyToMany */ true,/* upper */ -1,/* lower */ 0,/* inverseUpper */ -1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ true,/* isInverseOrdered */ true,/* isUnique */ true,/* isInverseUnique */ true,/* isDerived */ false,/* isNavigable */ true,/* propertyType */ Person.class,/* json */ "{\"name\": \"Friendship_knownBy\", \"associationClassOne\": true, \"memberEndOfAssociationClass\": false, \"associationClassPropertyName\": \"Friendship_knownBy\", \"inverseAssociationClassPropertyName\": \"Friendship_knows\", \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": false, \"readOnly\": false, \"dataTypeEnum\": null, \"validations\": null, \"qualifiedName\": \"testoclmodel::org::umlg::associationclass::Person::knownByAC\", \"persistentName\": \"knownByAC\", \"inverseName\": \"knows\", \"inverseQualifiedName\": \"testoclmodel::org::umlg::associationclass::Person::knowsAC\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": true, \"composite\": false, \"inverseComposite\": false, \"oneToOne\": false, \"oneToMany\": false, \"manyToOne\": false, \"manyToMany\": true, \"upper\": -1, \"lower\": 0, \"inverseUpper\": -1, \"label\": \"Friendship_AC\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": true, \"inverseOrdered\": true, \"unique\": true, \"inverseUnique\": true, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false), name(/* qualifiedName */ "testoclmodel::org::umlg::associationclass::Person::name",/* persistentName */ "name",/* inverseName */ "inverseOf::name",/* inverseQualifiedName */ "inverseOf::testoclmodel::org::umlg::associationclass::Person::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 */ 1,/* 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\": \"testoclmodel::org::umlg::associationclass::Person::name\", \"persistentName\": \"name\", \"inverseName\": \"inverseOf::name\", \"inverseQualifiedName\": \"inverseOf::testoclmodel::org::umlg::associationclass::Person::name\", \"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\": \"name\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": false, \"inverseOrdered\": false, \"unique\": true, \"inverseUnique\": false, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false), company(/* qualifiedName */ "testoclmodel::org::umlg::associationclass::Job::company",/* persistentName */ "company",/* inverseName */ "person",/* inverseQualifiedName */ "testoclmodel::org::umlg::associationclass::Company::person",/* isAssociationClassOne */ false,/* isMemberEndOfAssociationClass */ true,/* associationClassPropertyNameField */ "Job",/* inverseAssociationClassPropertyNameField */ "Job",/* 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("Job"),/* 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 */ Company.class,/* json */ "{\"name\": \"company\", \"associationClassOne\": false, \"memberEndOfAssociationClass\": true, \"associationClassPropertyName\": \"Job\", \"inverseAssociationClassPropertyName\": \"Job\", \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": false, \"readOnly\": false, \"dataTypeEnum\": null, \"validations\": null, \"qualifiedName\": \"testoclmodel::org::umlg::associationclass::Job::company\", \"persistentName\": \"company\", \"inverseName\": \"person\", \"inverseQualifiedName\": \"testoclmodel::org::umlg::associationclass::Company::person\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": true, \"composite\": false, \"inverseComposite\": false, \"oneToOne\": false, \"oneToMany\": false, \"manyToOne\": false, \"manyToMany\": true, \"upper\": -1, \"lower\": 0, \"inverseUpper\": -1, \"label\": \"Job\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": false, \"inverseOrdered\": false, \"unique\": true, \"inverseUnique\": true, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false), Job(/* qualifiedName */ "testoclmodel::org::umlg::associationclass::Job::companyAC",/* persistentName */ "companyAC",/* inverseName */ "person",/* inverseQualifiedName */ "testoclmodel::org::umlg::associationclass::Company::personAC",/* isAssociationClassOne */ true,/* isMemberEndOfAssociationClass */ false,/* associationClassPropertyNameField */ "Job",/* inverseAssociationClassPropertyNameField */ "Job",/* 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("Job_AC"),/* 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 */ Company.class,/* json */ "{\"name\": \"Job\", \"associationClassOne\": true, \"memberEndOfAssociationClass\": false, \"associationClassPropertyName\": \"Job\", \"inverseAssociationClassPropertyName\": \"Job\", \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": false, \"readOnly\": false, \"dataTypeEnum\": null, \"validations\": null, \"qualifiedName\": \"testoclmodel::org::umlg::associationclass::Job::companyAC\", \"persistentName\": \"companyAC\", \"inverseName\": \"person\", \"inverseQualifiedName\": \"testoclmodel::org::umlg::associationclass::Company::personAC\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": true, \"composite\": false, \"inverseComposite\": false, \"oneToOne\": false, \"oneToMany\": false, \"manyToOne\": false, \"manyToMany\": true, \"upper\": -1, \"lower\": 0, \"inverseUpper\": -1, \"label\": \"Job_AC\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": false, \"inverseOrdered\": false, \"unique\": true, \"inverseUnique\": true, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false), knownByFriendship(/* qualifiedName */ "testoclmodel::org::umlg::associationclass::Person::knownByFriendship",/* persistentName */ "knownByFriendship",/* inverseName */ "inverseOf::knownByFriendship",/* inverseQualifiedName */ "inverseOf::testoclmodel::org::umlg::associationclass::Person::knownByFriendship",/* isAssociationClassOne */ false,/* isMemberEndOfAssociationClass */ false,/* associationClassPropertyNameField */ "null",/* inverseAssociationClassPropertyNameField */ "null",/* isAssociationClassProperty */ false,/* isOnePrimitivePropertyOfAssociationClass */ false,/* isOnePrimitive */ false,/* isReadOnly */ true,/* dataTypeEnum */ null,/* validations */ Collections.emptyList(),/* isManyPrimitive */ false,/* oneEnumeration */ false,/* manyEnumeration */ false,/* isControllingSide */ true,/* isComposite */ false,/* isInverseComposite */ false,/* label */ UmlgLabelConverterFactory.getUmlgLabelConverter().convert("knownByFriendship"),/* isOneToOne */ false,/* isOneToMany */ false,/* isManyToOne */ false,/* isManyToMany */ true,/* upper */ -1,/* lower */ 0,/* inverseUpper */ 1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ true,/* isInverseOrdered */ false,/* isUnique */ true,/* isInverseUnique */ false,/* isDerived */ true,/* isNavigable */ true,/* propertyType */ Friendship.class,/* json */ "{\"name\": \"knownByFriendship\", \"associationClassOne\": false, \"memberEndOfAssociationClass\": false, \"associationClassPropertyName\": null, \"inverseAssociationClassPropertyName\": null, \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": false, \"readOnly\": true, \"dataTypeEnum\": null, \"validations\": null, \"qualifiedName\": \"testoclmodel::org::umlg::associationclass::Person::knownByFriendship\", \"persistentName\": \"knownByFriendship\", \"inverseName\": \"inverseOf::knownByFriendship\", \"inverseQualifiedName\": \"inverseOf::testoclmodel::org::umlg::associationclass::Person::knownByFriendship\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": true, \"composite\": false, \"inverseComposite\": false, \"oneToOne\": false, \"oneToMany\": false, \"manyToOne\": false, \"manyToMany\": true, \"upper\": -1, \"lower\": 0, \"inverseUpper\": 1, \"label\": \"knownByFriendship\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": true, \"inverseOrdered\": false, \"unique\": true, \"inverseUnique\": false, \"derived\": true, \"navigable\": true}",/* isChangeListenerAttribute */ false), knowsFriendship(/* qualifiedName */ "testoclmodel::org::umlg::associationclass::Person::knowsFriendship",/* persistentName */ "knowsFriendship",/* inverseName */ "inverseOf::knowsFriendship",/* inverseQualifiedName */ "inverseOf::testoclmodel::org::umlg::associationclass::Person::knowsFriendship",/* isAssociationClassOne */ false,/* isMemberEndOfAssociationClass */ false,/* associationClassPropertyNameField */ "null",/* inverseAssociationClassPropertyNameField */ "null",/* isAssociationClassProperty */ false,/* isOnePrimitivePropertyOfAssociationClass */ false,/* isOnePrimitive */ false,/* isReadOnly */ true,/* dataTypeEnum */ null,/* validations */ Collections.emptyList(),/* isManyPrimitive */ false,/* oneEnumeration */ false,/* manyEnumeration */ false,/* isControllingSide */ true,/* isComposite */ false,/* isInverseComposite */ false,/* label */ UmlgLabelConverterFactory.getUmlgLabelConverter().convert("knowsFriendship"),/* isOneToOne */ false,/* isOneToMany */ false,/* isManyToOne */ false,/* isManyToMany */ true,/* upper */ -1,/* lower */ 0,/* inverseUpper */ 1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ true,/* isInverseOrdered */ false,/* isUnique */ true,/* isInverseUnique */ false,/* isDerived */ true,/* isNavigable */ true,/* propertyType */ Friendship.class,/* json */ "{\"name\": \"knowsFriendship\", \"associationClassOne\": false, \"memberEndOfAssociationClass\": false, \"associationClassPropertyName\": null, \"inverseAssociationClassPropertyName\": null, \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": false, \"readOnly\": true, \"dataTypeEnum\": null, \"validations\": null, \"qualifiedName\": \"testoclmodel::org::umlg::associationclass::Person::knowsFriendship\", \"persistentName\": \"knowsFriendship\", \"inverseName\": \"inverseOf::knowsFriendship\", \"inverseQualifiedName\": \"inverseOf::testoclmodel::org::umlg::associationclass::Person::knowsFriendship\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": true, \"composite\": false, \"inverseComposite\": false, \"oneToOne\": false, \"oneToMany\": false, \"manyToOne\": false, \"manyToMany\": true, \"upper\": -1, \"lower\": 0, \"inverseUpper\": 1, \"label\": \"knowsFriendship\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": true, \"inverseOrdered\": false, \"unique\": true, \"inverseUnique\": false, \"derived\": true, \"navigable\": true}",/* isChangeListenerAttribute */ false), knows(/* qualifiedName */ "testoclmodel::org::umlg::associationclass::Person::knows",/* persistentName */ "knows",/* inverseName */ "knownBy",/* inverseQualifiedName */ "testoclmodel::org::umlg::associationclass::Person::knownBy",/* isAssociationClassOne */ false,/* isMemberEndOfAssociationClass */ true,/* associationClassPropertyNameField */ "Friendship_knows",/* inverseAssociationClassPropertyNameField */ "Friendship_knownBy",/* 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("Friendship"),/* isOneToOne */ false,/* isOneToMany */ false,/* isManyToOne */ false,/* isManyToMany */ true,/* upper */ -1,/* lower */ 0,/* inverseUpper */ -1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ true,/* isInverseOrdered */ true,/* isUnique */ true,/* isInverseUnique */ true,/* isDerived */ false,/* isNavigable */ true,/* propertyType */ Person.class,/* json */ "{\"name\": \"knows\", \"associationClassOne\": false, \"memberEndOfAssociationClass\": true, \"associationClassPropertyName\": \"Friendship_knows\", \"inverseAssociationClassPropertyName\": \"Friendship_knownBy\", \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": false, \"readOnly\": false, \"dataTypeEnum\": null, \"validations\": null, \"qualifiedName\": \"testoclmodel::org::umlg::associationclass::Person::knows\", \"persistentName\": \"knows\", \"inverseName\": \"knownBy\", \"inverseQualifiedName\": \"testoclmodel::org::umlg::associationclass::Person::knownBy\", \"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\": \"Friendship\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": true, \"inverseOrdered\": true, \"unique\": true, \"inverseUnique\": true, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false), Friendship_knows(/* qualifiedName */ "testoclmodel::org::umlg::associationclass::Person::knowsAC",/* persistentName */ "knowsAC",/* inverseName */ "knownBy",/* inverseQualifiedName */ "testoclmodel::org::umlg::associationclass::Person::knownByAC",/* isAssociationClassOne */ true,/* isMemberEndOfAssociationClass */ false,/* associationClassPropertyNameField */ "Friendship_knows",/* inverseAssociationClassPropertyNameField */ "Friendship_knownBy",/* 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("Friendship_AC"),/* isOneToOne */ false,/* isOneToMany */ false,/* isManyToOne */ false,/* isManyToMany */ true,/* upper */ -1,/* lower */ 0,/* inverseUpper */ -1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ true,/* isInverseOrdered */ true,/* isUnique */ true,/* isInverseUnique */ true,/* isDerived */ false,/* isNavigable */ true,/* propertyType */ Person.class,/* json */ "{\"name\": \"Friendship_knows\", \"associationClassOne\": true, \"memberEndOfAssociationClass\": false, \"associationClassPropertyName\": \"Friendship_knows\", \"inverseAssociationClassPropertyName\": \"Friendship_knownBy\", \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": false, \"readOnly\": false, \"dataTypeEnum\": null, \"validations\": null, \"qualifiedName\": \"testoclmodel::org::umlg::associationclass::Person::knowsAC\", \"persistentName\": \"knowsAC\", \"inverseName\": \"knownBy\", \"inverseQualifiedName\": \"testoclmodel::org::umlg::associationclass::Person::knownByAC\", \"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\": \"Friendship_AC\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": true, \"inverseOrdered\": true, \"unique\": true, \"inverseUnique\": true, \"derived\": false, \"navigable\": true}",/* isChangeListenerAttribute */ false), testoclmodel(/* qualifiedName */ "testoclmodel",/* persistentName */ "testoclmodel",/* inverseName */ "inverseOftestoclmodel",/* inverseQualifiedName */ "inverseOftestoclmodel",/* 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 */ true,/* label */ UmlgLabelConverterFactory.getUmlgLabelConverter().convert("rootPerson"),/* isOneToOne */ true,/* isOneToMany */ false,/* isManyToOne */ false,/* isManyToMany */ false,/* upper */ -1,/* lower */ 0,/* inverseUpper */ 1,/* isQualified */ false,/* isInverseQualified */ false,/* isOrdered */ false,/* isInverseOrdered */ false,/* isUnique */ false,/* isInverseUnique */ false,/* isDerived */ false,/* isNavigable */ false,/* propertyType */ Object.class,/* json */ "{\"name\": \"testoclmodel\", \"associationClassOne\": false, \"memberEndOfAssociationClass\": false, \"associationClassPropertyName\": null, \"inverseAssociationClassPropertyName\": null, \"associationClassProperty\": false, \"onePrimitivePropertyOfAssociationClass\": false, \"onePrimitive\": false, \"readOnly\": false, \"dataTypeEnum\": null, \"validations\": null, \"qualifiedName\": \"testoclmodel\", \"persistentName\": \"testoclmodel\", \"inverseName\": \"inverseOftestoclmodel\", \"inverseQualifiedName\": \"inverseOftestoclmodel\", \"manyPrimitive\": false, \"oneEnumeration\": false, \"manyEnumeration\": false, \"controllingSide\": true, \"composite\": false, \"inverseComposite\": true, \"oneToOne\": true, \"oneToMany\": false, \"manyToOne\": false, \"manyToMany\": false, \"upper\": -1, \"lower\": 0, \"inverseUpper\": 1, \"label\": \"rootPerson\", \"qualified\": false, \"inverseQualified\": false, \"ordered\": false, \"inverseOrdered\": false, \"unique\": false, \"inverseUnique\": false, \"derived\": false, \"navigable\": false}",/* 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 PersonRuntimePropertyEnum * * @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 PersonRuntimePropertyEnum(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\": \"Person\", "); sb.append("\"qualifiedName\": \"testoclmodel::org::umlg::associationclass::Person\", "); sb.append("\"uri\": \"TODO\", "); sb.append("\"properties\": ["); for ( PersonRuntimePropertyEnum l : PersonRuntimePropertyEnum.values() ) { sb.append(l.toJson()); if ( count < PersonRuntimePropertyEnum.values().length ) { count++; sb.append(","); } } sb.append("]}"); return sb.toString(); } static public PersonRuntimePropertyEnum fromInverseQualifiedName(String inverseQualifiedName) { if ( testoclmodel.getInverseQualifiedName().equals(inverseQualifiedName) ) { return testoclmodel; } if ( Friendship_knows.getInverseQualifiedName().equals(inverseQualifiedName) ) { return Friendship_knows; } if ( knows.getInverseQualifiedName().equals(inverseQualifiedName) ) { return knows; } if ( knowsFriendship.getInverseQualifiedName().equals(inverseQualifiedName) ) { return knowsFriendship; } if ( knownByFriendship.getInverseQualifiedName().equals(inverseQualifiedName) ) { return knownByFriendship; } if ( Job.getInverseQualifiedName().equals(inverseQualifiedName) ) { return Job; } if ( company.getInverseQualifiedName().equals(inverseQualifiedName) ) { return company; } if ( name.getInverseQualifiedName().equals(inverseQualifiedName) ) { return name; } if ( Friendship_knownBy.getInverseQualifiedName().equals(inverseQualifiedName) ) { return Friendship_knownBy; } if ( knownBy.getInverseQualifiedName().equals(inverseQualifiedName) ) { return knownBy; } return null; } static public PersonRuntimePropertyEnum fromLabel(String _label) { if ( testoclmodel.getLabel().equals(_label) ) { return testoclmodel; } if ( Friendship_knows.getLabel().equals(_label) ) { return Friendship_knows; } if ( knows.getLabel().equals(_label) ) { return knows; } if ( knowsFriendship.getLabel().equals(_label) ) { return knowsFriendship; } if ( knownByFriendship.getLabel().equals(_label) ) { return knownByFriendship; } if ( Job.getLabel().equals(_label) ) { return Job; } if ( company.getLabel().equals(_label) ) { return company; } if ( name.getLabel().equals(_label) ) { return name; } if ( Friendship_knownBy.getLabel().equals(_label) ) { return Friendship_knownBy; } if ( knownBy.getLabel().equals(_label) ) { return knownBy; } return null; } static public PersonRuntimePropertyEnum fromQualifiedName(String qualifiedName) { if ( testoclmodel.getQualifiedName().equals(qualifiedName) ) { return testoclmodel; } if ( Friendship_knows.getQualifiedName().equals(qualifiedName) ) { return Friendship_knows; } if ( knows.getQualifiedName().equals(qualifiedName) ) { return knows; } if ( knowsFriendship.getQualifiedName().equals(qualifiedName) ) { return knowsFriendship; } if ( knownByFriendship.getQualifiedName().equals(qualifiedName) ) { return knownByFriendship; } if ( Job.getQualifiedName().equals(qualifiedName) ) { return Job; } if ( company.getQualifiedName().equals(qualifiedName) ) { return company; } if ( name.getQualifiedName().equals(qualifiedName) ) { return name; } if ( Friendship_knownBy.getQualifiedName().equals(qualifiedName) ) { return Friendship_knownBy; } if ( knownBy.getQualifiedName().equals(qualifiedName) ) { return knownBy; } 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