public class ConceptSchema extends TermSchema
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
BASE_NAME |
encodingByOrder, MANDATORY, OPTIONAL, UNLIMITED
Constructor and Description |
---|
ConceptSchema(java.lang.String typeName)
Creates a
ConceptSchema with a given type-name,
e.g. |
Modifier and Type | Method and Description |
---|---|
protected void |
add(java.lang.String name,
ObjectSchema slotSchema)
Add a mandatory slot to the schema.
|
protected void |
add(java.lang.String name,
ObjectSchema slotSchema,
int optionality)
Add a slot to the schema.
|
protected void |
add(java.lang.String name,
ObjectSchema elementsSchema,
int cardMin,
int cardMax)
Add a slot with cardinality between
cardMin
and cardMax to this schema. |
protected void |
add(java.lang.String name,
ObjectSchema elementsSchema,
int cardMin,
int cardMax,
java.lang.String aggType)
Add a slot with cardinality between
cardMin
and cardMax to this schema and allow specifying the type
of Aggregate to be used for this slot. |
void |
add(java.lang.String name,
ObjectSchema elementsSchema,
int cardMin,
int cardMax,
java.lang.String aggType,
int optionality)
Add a slot with optionality and cardinality between
cardMin
and cardMax to this schema and allow specifying the type
of Aggregate to be used for this slot. |
void |
add(java.lang.String name,
TermSchema slotSchema)
Add a mandatory slot to the schema.
|
void |
add(java.lang.String name,
TermSchema slotSchema,
int optionality)
Add a slot to the schema.
|
void |
add(java.lang.String name,
TermSchema elementsSchema,
int cardMin,
int cardMax)
Add a slot with cardinality between
cardMin
and cardMax to this schema. |
void |
add(java.lang.String name,
TermSchema elementsSchema,
int cardMin,
int cardMax,
java.lang.String aggType)
Add a slot with cardinality between
cardMin
and cardMax to this schema and allow specifying the type
of Aggregate to be used for this slot. |
void |
addFacet(java.lang.String slotName,
Facet f)
Add a
Facet on a slot of this schema |
void |
addSuperSchema(ConceptSchema superClassSchema)
Adds a super-schema to this schema.
|
protected void |
addSuperSchema(ObjectSchema superSchema)
Add a super schema to this schema, i.e. this schema will
inherit all characteristics from the super schema
|
boolean |
containsSlot(java.lang.String name)
Indicate whether a given
String is the name of a
slot defined in this Schema |
protected boolean |
descendsFrom(ObjectSchema s)
Return true if
- s is the base schema for the XXXSchema class this schema is
an instance of (e.g. s is ConceptSchema.getBaseSchema() and this
schema is an instance of ConceptSchema)
- s is the base schema for a super-class of the XXXSchema class
this schema is an instance of (e.g. s is TermSchema.getBaseSchema()
and this schema is an instance of ConceptSchema)
|
boolean |
equals(java.lang.Object o) |
static ObjectSchema |
getBaseSchema()
Retrieve the generic base schema for all concepts.
|
Facet[] |
getFacets(java.lang.String slotName)
Retrieves the facets defined upon a slot.
|
java.lang.String[] |
getNames()
Returns the names of all the slots in this
Schema
(including slots defined in super schemas). |
java.lang.String[] |
getOwnNames()
Returns the names of the slots defined in this
Schema
(excluding slots defined in super schemas). |
ObjectSchema |
getSchema(java.lang.String name)
Retrieves the schema of a slot of this
Schema . |
ObjectSchema[] |
getSuperSchemas()
Retrieves an array containing the direct super-schemas of this schema.
|
java.lang.String |
getTypeName()
Retrieves the name of the type of this schema.
|
boolean |
isAssignableFrom(ObjectSchema s)
This method checks whether or not an abstract object that is an instance
of schema s can be used in place of an abstract object that is an instance
of this schema.
|
boolean |
isCompatibleWith(ObjectSchema s)
Check if this schema is compatible with a given schema s.
|
boolean |
isMandatory(java.lang.String name)
Indicate whether a slot of this schema is mandatory
|
boolean |
isOwnSlot(java.lang.String name)
Indicate whether a given
String is the name of a
slot actually defined in this Schema (excluding super-schemas) |
AbsObject |
newInstance()
Creates an Abstract descriptor to hold a concept of
the proper type.
|
java.lang.String |
toString() |
void |
validate(AbsObject abs,
Ontology onto)
Check whether a given abstract descriptor complies with this
schema.
|
protected void |
validateSlots(AbsObject abs,
Ontology onto)
For each slot
- get the corresponding attribute value from the abstract descriptor
abs
- Check that it is not null if the slot is mandatory
- Check that its schema is compatible with the schema of the slot
- Check that it is a correct abstract descriptor by validating it
against its schema.
|
getEncodingByOrder, setEncodingByOrder
public static final java.lang.String BASE_NAME
public ConceptSchema(java.lang.String typeName)
ConceptSchema
with a given type-name,
e.g. PERSON, ADDRESS...typeName
- The name of this ConceptSchema
.public static ObjectSchema getBaseSchema()
public void add(java.lang.String name, TermSchema slotSchema)
TermSchema
.name
- The name of the slot.slotSchema
- The schema of the slot.public void add(java.lang.String name, TermSchema slotSchema, int optionality)
TermSchema
.name
- The name of the slot.slotSchema
- The schema of the slot.optionality
- The optionality, i.e., OPTIONAL
or MANDATORY
public void add(java.lang.String name, TermSchema elementsSchema, int cardMin, int cardMax)
cardMin
and cardMax
to this schema.
Adding such a slot corresponds to add a slot
of type Aggregate and then to add proper facets (constraints)
to check that the type of the elements in the aggregate are
compatible with elementsSchema
and that the
aggregate contains at least cardMin
elements and
at most cardMax
elements. By default the Aggregate
is of type BasicOntology.SEQUENCE
.name
- The name of the slot.elementsSchema
- The schema for the elements of this slot.cardMin
- This slot must get at least cardMin
valuescardMax
- This slot can get at most cardMax
valuespublic void add(java.lang.String name, TermSchema elementsSchema, int cardMin, int cardMax, java.lang.String aggType)
cardMin
and cardMax
to this schema and allow specifying the type
of Aggregate to be used for this slot.name
- The name of the slot.elementsSchema
- The schema for the elements of this slot.cardMin
- This slot must get at least cardMin
valuescardMax
- This slot can get at most cardMax
valuesaggType
- The type of Aggregate to be usedadd(String, TermSchema, int, int)
public void add(java.lang.String name, ObjectSchema elementsSchema, int cardMin, int cardMax, java.lang.String aggType, int optionality)
cardMin
and cardMax
to this schema and allow specifying the type
of Aggregate to be used for this slot.name
- The name of the slot.elementsSchema
- The schema for the elements of this slot.cardMin
- This slot must get at least cardMin
valuescardMax
- This slot can get at most cardMax
valuesaggType
- The type of Aggregate to be usedoptionality
- The optionality, i.e., OPTIONAL
add(String, ObjectSchema, int, int)
public void addSuperSchema(ConceptSchema superClassSchema)
ConceptSchema
must be a ConceptSchema
too.superClassSchema
- The super-schema to be added.public void addFacet(java.lang.String slotName, Facet f) throws OntologyException
Facet
on a slot of this schemaslotName
- the name of the slot the Facet
must be added to.f
- the Facet
to be added.OntologyException
- if slotName does not identify
a valid slot in this schemapublic AbsObject newInstance() throws OntologyException
newInstance
in class TermSchema
OntologyException
public void validate(AbsObject abs, Ontology onto) throws OntologyException
abs
- The abstract descriptor to be checkedOntologyException
- If the abstract descriptor does not
complies with this schemaprotected boolean descendsFrom(ObjectSchema s)
descendsFrom
in class TermSchema
protected void add(java.lang.String name, ObjectSchema slotSchema, int optionality)
add
in class ObjectSchema
name
- The name of the slot.slotSchema
- The schema defining the type of the slot.optionality
- The optionality, i.e., OPTIONAL
or MANDATORY
protected void add(java.lang.String name, ObjectSchema slotSchema)
add
in class ObjectSchema
name
- name of the slot.slotSchema
- schema of the slot.protected void add(java.lang.String name, ObjectSchema elementsSchema, int cardMin, int cardMax)
cardMin
and cardMax
to this schema.
Adding such a slot corresponds to add a slot
of type Aggregate and then to add proper facets (constraints)
to check that the type of the elements in the aggregate are
compatible with elementsSchema
and that the
aggregate contains at least cardMin
elements and
at most cardMax
elements. By default the Aggregate
is of type BasicOntology.SEQUENCE
.add
in class ObjectSchema
name
- The name of the slot.elementsSchema
- The schema for the elements of this slot.cardMin
- This slot must get at least cardMin
valuescardMax
- This slot can get at most cardMax
valuesprotected void add(java.lang.String name, ObjectSchema elementsSchema, int cardMin, int cardMax, java.lang.String aggType)
cardMin
and cardMax
to this schema and allow specifying the type
of Aggregate to be used for this slot.add
in class ObjectSchema
name
- The name of the slot.elementsSchema
- The schema for the elements of this slot.cardMin
- This slot must get at least cardMin
valuescardMax
- This slot can get at most cardMax
valuesaggType
- The type of Aggregate to be usedadd(String, ObjectSchema, int, int)
protected void addSuperSchema(ObjectSchema superSchema)
addSuperSchema
in class ObjectSchema
superSchema
- the super schema.public java.lang.String getTypeName()
getTypeName
in class ObjectSchema
public java.lang.String[] getNames()
Schema
(including slots defined in super schemas).getNames
in class ObjectSchema
public java.lang.String[] getOwnNames()
Schema
(excluding slots defined in super schemas).getOwnNames
in class ObjectSchema
Schema
.public ObjectSchema getSchema(java.lang.String name) throws OntologyException
Schema
.getSchema
in class ObjectSchema
name
- The name of the slot.Schema
of slot name
OntologyException
- If no slot with this name is present
in this schema.public boolean containsSlot(java.lang.String name)
String
is the name of a
slot defined in this Schema
containsSlot
in class ObjectSchema
name
- The String
to test.true
if name
is the name of a
slot defined in this Schema
.public boolean isOwnSlot(java.lang.String name)
String
is the name of a
slot actually defined in this Schema
(excluding super-schemas)isOwnSlot
in class ObjectSchema
name
- The String
to test.true
if name
is the name of a
slot actually defined in this Schema
(excluding super-schemas).public boolean isMandatory(java.lang.String name) throws OntologyException
isMandatory
in class ObjectSchema
name
- The name of the slot.true
if the slot is mandatory.OntologyException
- If no slot with this name is present
in this schema.protected void validateSlots(AbsObject abs, Ontology onto) throws OntologyException
OntologyException
public boolean isCompatibleWith(ObjectSchema s)
isCompatibleWith
in class ObjectSchema
public java.lang.String toString()
toString
in class java.lang.Object
public boolean equals(java.lang.Object o)
equals
in class java.lang.Object
public ObjectSchema[] getSuperSchemas()
ObjectSchema
getSuperSchemas
in class ObjectSchema
public Facet[] getFacets(java.lang.String slotName)
ObjectSchema
getFacets
in class ObjectSchema
slotName
- the name of the slotpublic boolean isAssignableFrom(ObjectSchema s)
ObjectSchema
isAssignableFrom
in class ObjectSchema