/*****************************************************************************
* Copyright (c) 2011 CEA LIST.
*
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* CEA LIST - Initial API and implementation
*
*****************************************************************************/
package org.eclipse.papyrus.uml.alf.syntax.units;
import java.util.List;
import org.eclipse.papyrus.uml.alf.syntax.common.ElementReference;
import org.eclipse.papyrus.uml.alf.syntax.expressions.QualifiedName;
public class ClassifierDefinition extends NamespaceDefinition {
// Synthesized Properties
public boolean isAbstract = false ;
public QualifiedName specialization ;
// Derived Properties
public List<ElementReference> specializationReferent ;
// Constraints
/*
* The members of a classifier definition include non-private members inherited from the classifiers it
* specializes. The visibility of inherited members is as specified in the UML Superstructure, Subclause
* 7.3.8.
*/
public void checkClassifierDefinitionInheritedMembers() {
}
/*
* Each name listed in the specialization list for a classifier definition must have a single classifier referent.
* None of these referents may be templates.
*/
public void checkClassifierDefinitionSpecialization() {
}
/*
* The specialization referents of a classifier definition are the classifiers denoted by the names in the
* specialization list for the classifier definition.
*/
public void checkClassifierDefinitionSpecializationReferentDerivation() {
}
// Helper Operations
/*
* The namespace definition associated with the given unit definition must be a classifier definition. The
* subunit classifier definition may be abstract if and only if the subunit classifier definition is abstract. The
* subunit classifier definition must have the same specialization referents as the stub classifier definition.
* (Note that it is the referents that must match, not the exact names or the ordering of those names in the
* specialization list.) The subunit classifier definition must also have a matching classifier template
* parameter for each classifier template parameter of the stub classifier definition. Two template
* parameters match if they have same names and the same specialization referents.
*/
public boolean matchForStub(UnitDefinition unit) {
return false ;
}
}