package org.modeldriven.fuml.repository.model;
import java.util.ArrayList;
import java.util.List;
import org.modeldriven.fuml.repository.Package;
import org.modeldriven.fuml.repository.RepositoryArtifact;
import fUML.Syntax.Classes.Kernel.DataType;
public class Classifier extends NamedElement
implements org.modeldriven.fuml.repository.Classifier {
private fUML.Syntax.Classes.Kernel.Classifier _classifier;
private org.modeldriven.fuml.repository.Package _package;
public Classifier(fUML.Syntax.Classes.Kernel.Classifier _classifier,
RepositoryArtifact artifact) {
super(_classifier, artifact);
this._classifier = _classifier;
}
public fUML.Syntax.Classes.Kernel.Classifier getDelegate() {
return this._classifier;
}
public Package getPackage() {
if (this._package == null) {
this._package =
new org.modeldriven.fuml.repository.model.Package(this._classifier.package_,
this.artifact);
}
return _package;
}
//public fUML.Syntax.Classes.Kernel.ClassifierList getGeneral() {
// return this._classifier.general;
//}
private List<org.modeldriven.fuml.repository.Classifier> general = new ArrayList<org.modeldriven.fuml.repository.Classifier>();
public List<org.modeldriven.fuml.repository.Classifier> getGeneral() {
if (general.size() == 0 && this._classifier.general != null && this._classifier.general.size() > 0)
for (int i = 0; i < this._classifier.general.size(); i++)
this.general.add(new Classifier(this._classifier.general.get(i), this.artifact));
return general;
}
private List<org.modeldriven.fuml.repository.Classifier> generalization = new ArrayList<org.modeldriven.fuml.repository.Classifier>();
public List<org.modeldriven.fuml.repository.Classifier> getGeneralization() {
if (generalization.size() == 0 && this._classifier.generalization != null && this._classifier.generalization.size() > 0)
for (int i = 0; i < this._classifier.generalization.size(); i++)
this.generalization.add(new Classifier(this._classifier.generalization.get(i).general,
this.artifact));
return generalization;
}
public boolean isAbstract() {
// fUML generated code has an isAbstract member on both Classifier and Class_
if (_classifier instanceof fUML.Syntax.Classes.Kernel.Class_)
return ((fUML.Syntax.Classes.Kernel.Class_)_classifier).isAbstract;
else
return this._classifier.isAbstract;
}
public boolean isDataType() {
return this._classifier instanceof DataType;
}
} // Classifier