AMETASx.data.htype
Class MessageItemType

java.lang.Object
  extended byAMETASx.data.htype.MessageItemType
All Implemented Interfaces:
java.io.Serializable

public class MessageItemType
extends java.lang.Object
implements java.io.Serializable

Repräsentiert den Typ eines Nachrichtenelements. Ein Nachrichtenelement ist ein Objekt einer beliebigen Klasse. In AMETAS wird vorausgesetzt, dass die Klasse vom Klassenlader im Systempfad gefunden wird.

See Also:
Serialized Form

Constructor Summary
MessageItemType()
          Standardkonstruktor.
MessageItemType(java.lang.String sTypeName)
          Konstruktor.
MessageItemType(java.lang.String sTypeName, int nArrayDimension, Annotation anno)
          Konstruktor.
 
Method Summary
 boolean canBeAssigned(java.lang.Object instance)
          Stellt fest, ob das übergebene Datum eine Instanz dieses Typs sein kann.
 Annotation getAnnotation()
          Holt die Annotation.
 int getArrayDimension()
          Holt die Dimension.
 HybridTypeConformance getConformanceTo(MessageItemType mtSuper, HybridTypeConformance tcFail, CGOntologySet os)
          Vergleicht die Nachrichtenelementtypen.
 java.lang.String getName()
          Holt den Typ des Nachrichtenelements.
 boolean isArray()
          Entscheidet, ob dieser Typ ein Feld ist.
 boolean isDataSubtypeOf(MessageItemType otherType)
          Stellt fest - unabhängig von der Annotation - ob dieser Nachrichtentyp mit dem verglichenen überhaupt zusammenpasst.
 boolean isPrimitiveTypeArray()
          Gibt an, ob dieser Typ ein Feld von Primtypen ist.
 boolean isSubtypeOf(MessageItemType mt)
          Vergleicht die Nachrichtenelementtypen.
 void setAnnotation(Annotation ann)
          Setzt die Annotation des Nachrichtenelements.
 void setArrayDimension(int nDim)
          Setzt die Dimension dieses Typs.
 void setName(java.lang.String sTypeName)
          Setzt den Typ des Nachrichtenelements.
 java.lang.String toString()
          Liefert eine Stringrepräsentation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

MessageItemType

public MessageItemType()
Standardkonstruktor.


MessageItemType

public MessageItemType(java.lang.String sTypeName)
                throws MalformedTypeException
Konstruktor. Diesem übergibt man den Typnamen mit Feldklammern.

Parameters:
sTypeName - Typname mit Feldangaben.
Throws:
MalformedTypeException - wenn der Typname keine Nulllader-Referenzklasse ist oder ein skalarer primitiver Typ oder der Migrations-Pseudotyp als Feld deklariert ist oder die Klammern nicht korrekt angegeben sind.

MessageItemType

public MessageItemType(java.lang.String sTypeName,
                       int nArrayDimension,
                       Annotation anno)
                throws MalformedTypeException
Konstruktor.

Throws:
MalformedTypeException - wenn der Typname keine Nulllader-Referenzklasse ist oder ein skalarer primitiver Typ oder die Felddimension negativ ist oder der Migrations-Pseudotyp als Feld deklariert ist.
Method Detail

setName

public void setName(java.lang.String sTypeName)
Setzt den Typ des Nachrichtenelements.

Parameters:
sTypeName - Typ.

setArrayDimension

public void setArrayDimension(int nDim)
Setzt die Dimension dieses Typs.

Parameters:
nDim - Dimension oder 0 bei Skalar.

setAnnotation

public void setAnnotation(Annotation ann)
Setzt die Annotation des Nachrichtenelements.

Parameters:
ann - Annotation.

getName

public java.lang.String getName()
Holt den Typ des Nachrichtenelements.

Returns:
Typ

getAnnotation

public Annotation getAnnotation()
Holt die Annotation.

Returns:
Annotation.

getArrayDimension

public int getArrayDimension()
Holt die Dimension.

Returns:
Dimension des Typs.

isArray

public boolean isArray()
Entscheidet, ob dieser Typ ein Feld ist.

Returns:
true, wenn dieser Typ ein Feld ist, sonst false.

isPrimitiveTypeArray

public boolean isPrimitiveTypeArray()
Gibt an, ob dieser Typ ein Feld von Primtypen ist.

Returns:
true, wenn dieser Typ ein Feld von Primtypen ist, sonst false.

isDataSubtypeOf

public boolean isDataSubtypeOf(MessageItemType otherType)
Stellt fest - unabhängig von der Annotation - ob dieser Nachrichtentyp mit dem verglichenen überhaupt zusammenpasst. In einem weiteren Vergleichsschritt können die Annotationen verglichen werden. Wir bemühen hier das Java-Laufzeitsystem, um festzustellen, ob eine Subklassenbeziehung besteht.

Parameters:
otherType - Vergleichstyp.
Returns:
true, wenn dieser Typ ein Subtyp des übergeben Typs ist.

canBeAssigned

public boolean canBeAssigned(java.lang.Object instance)
Stellt fest, ob das übergebene Datum eine Instanz dieses Typs sein kann.

Parameters:
instance - Instanz
Returns:
true, wenn die Instanz von diesem Typ stammen kann, sonst false.

getConformanceTo

public HybridTypeConformance getConformanceTo(MessageItemType mtSuper,
                                              HybridTypeConformance tcFail,
                                              CGOntologySet os)
Vergleicht die Nachrichtenelementtypen. Zunächst wird festgestellt, ob die beiden Elemente vom Datentyp her zueinander passen; dann erst werden die Annotationen verglichen. Eine Konstante wird modelliert als ein Konzeptgraph der Form:
                CG: { [ Nachrichtenelement ] - ( hat ) - [ Wert: 42 ] } oder
                CG: { [ Nachrichtenelement ] - ( hat ) - [ Wert: { getIdentities } ] }
                
beziehungsweise als ein String der Form:
                S: { "Index:7" }
                S: { "Prompt:Hallo, wer da?" }


isSubtypeOf

public boolean isSubtypeOf(MessageItemType mt)
Vergleicht die Nachrichtenelementtypen. Die Annotationen werden nicht verglichen.

Parameters:
mt - Nachricht, die ein Supertyp dieser Nachricht sein soll.
Returns:
true, wenn sie ein Supertyp ist, sonst false.

toString

public java.lang.String toString()
Liefert eine Stringrepräsentation.

Returns:
Stringrepräsentation.