Interface publique Modèle IlrObjectModel étend IlrProperties, IlrVisitable
Un modèle d'objet est composé d'un package par défaut qui est lui-même composé d'autres packages, de classes et d'énumérations.
Notez que l'API a légèrement changé dans JRules 5.0.
Ilr<className>.List et Ilr<className>.Iterator ont été remplacés respectivement par List et Iterator . Les méthodes des classes supprimées qui utilisent le nom de l'élément de modèle se trouvent dans IlrModelUtilities.IlrObjectModel.Visitor est obsolète. Il est maintenant remplacé par IlrVisitor qui prend en charge les nouveaux types d'éléments de modèle et permet de sélectionner facilement les classes à visiter. Par exemple, si vous voulez compter le nombre de membres, à l'exception des méthodes:
public static class MemberCounter extends IlrVisitor { // The class has to be static and public!
public int counter;
public void inspect(IlrMember member) { // The accepts methods have to be public
counter++;
}
public void inspect(IlrMethod method) {
// do nothing
}
}
IlrObjectModel.Selector est obsolète. Il est maintenant remplacé par IlrSelector, qui prend en charge les nouveaux types d'éléments de modèle et permet de sélectionner facilement les classes à tester. Par exemple, si vous souhaitez accepter tous les membres publics, à l'exception des méthodes:
public static class MemberSelector extends IlrSelector { // The class has to be static and public!
public boolean accepts(IlrMember member) { // The inspect methods have to be public
return true;
}
public boolean accepts(IlrMethod method) {
return false;
}
}
Les méthodes qui avaient précédemment un IlrObjectModel.Selector comme paramètre possèdent désormais un IlrSelector. Vous pouvez encapsuler vos implémentations de IlrObjectModel.Selector à l'aide de la classe IlrObjectModel.SelectorWrapper .
IlrPackage, IlrType, IlrClass, IlrEnum, IlrPrimitiveType| Modificateur et type | Interface et description |
|---|---|
static interface |
IlrObjectModel.ClassLoadingErrorHandler |
static class |
IlrObjectModel.KindType de modèle d'objet.
|
static class |
IlrObjectModel.Platform |
static interface |
IlrObjectModel.SelectorObsolète.
Utilisez
IlrSelector à la place. |
static class |
IlrObjectModel.SelectorWrapperEncapsuleur de compatibilité pour les sélecteurs.
|
static interface |
IlrObjectModel.VisitorObsolète.
Utilisez
IlrVisitor à la place |
| Modificateur et type | Méthode et description |
|---|---|
IlrType |
addJavaClass(java.lang.Class javaClass)Ajoute la description de la classe Java nommée
javaClass au modèle d'objet. |
java.util.Iterator |
allClasses()Renvoie un itérateur qui itère sur toutes les classes contenues dans ce modèle d'objet.
|
java.util.Iterator |
allEnums()Renvoie un itérateur qui itère sur toutes les énumérations contenues dans ce modèle d'objet.
|
java.util.Iterator |
allPackages()Renvoie un itérateur qui itère sur tous les packages contenus dans ce modèle d'objet.
|
IlrType |
getBooleanType()Renvoie le type primitif
boolean . |
IlrType |
getByteType()Renvoie le type primitif
byte . |
IlrType |
getCharType()Renvoie le type primitif
char . |
IlrClass |
getClass(java.lang.String fullyQualifiedName)Renvoie la classe dont le nom qualifié complet est
fullyQualifiedName. |
IlrClass |
getClass(java.lang.String rawClassName,
IlrType[] typeParameters)Instance d'une classe générique appelée
rawClassName liée aux paramètres de type donnés. |
java.lang.ClassLoader |
getClassLoader()Renvoie le chargeur de classe défini par un appel à
setClassLoader. |
IlrClass |
getClassReference(java.lang.Class javaClass)Renvoie la classe correspondant à la classe Java.
|
IlrClass |
getClassReference(java.lang.String fqn)Renvoie la classe correspondant au fqn.
|
IlrClass |
getClassReference(java.lang.String fqn,
IlrType[] typeParameters)Renvoie la classe correspondant au fqn ET aux paramètres de type.
|
IlrPackage |
getDefaultPackage()Renvoie le package par défaut du modèle d'objet.
|
IlrType |
getDoubleType()Renvoie le type primitif
double . |
IlrType |
getFloatType()Renvoie le type primitif
float . |
IlrClass |
getGenericClass(java.lang.String rawClassName,
int numberOfTypeParameters) |
IlrType |
getIntType()Renvoie le type primitif
int . |
IlrObjectModel.Kind |
getKind()Renvoie le type de modèle d'objet.
|
IlrType |
getLongType()Renvoie le type primitif
long . |
IlrPackage |
getPackage(java.lang.String fullyQualifiedName)Renvoie le package dont le nom qualifié complet est
fullyQualifiedName. |
IlrObjectModel.Platform |
getPlatform()Renvoie la plateforme référencée par ce modèle d'objet
|
IlrPrimitiveType |
getPrimitiveType(java.lang.String name)Renvoie le type primitif nommé
name. |
java.util.List |
getPrimitiveTypes()Renvoie une liste de tous les types primitifs dans ce modèle d'objet.
|
IlrResources |
getResources()Renvoie le regroupement de ressources.
|
IlrType |
getShortType()Renvoie le type primitif
short . |
IlrClass |
getStringClass()Renvoie la classe
java.lang.String . |
IlrType |
getType(java.lang.String fullyQualifiedName)Renvoie le type dont le nom qualifié complet est
fullyQualifiedName. |
IlrType |
getTypeReference(java.lang.Class javaClass)Retourne le type correspondant à la classe Java.
|
IlrType |
getTypeReference(java.lang.String fqn)Retourne le type correspondant au fqn.
|
IlrType |
getVoidType()Renvoie le type primitif
void . |
boolean |
isDynamicallyLoadingClasses()Renvoie
true si la recherche de classe Java est activée. |
boolean |
isMappingComponentProperties()Renvoie
true si le mappage des propriétés de composant est activé. |
IlrClass |
mapJavaClass(java.lang.Class javaClass)Appelle
mapJavaType(Class) et, si le type renvoyé est un IlrClass, il est renvoyé, sinon null est renvoyé. |
IlrClass |
mapJavaClass(java.lang.String className)Appelle
mapJavaType(String) et, si le type renvoyé est un IlrClass, il est renvoyé, sinon null est renvoyé. |
IlrClass |
mapJavaClass(java.lang.String className,
IlrObjectModel.ClassLoadingErrorHandler errorHandler) |
IlrClass |
mapJavaClass(java.lang.String rawClassName,
IlrObjectModel.ClassLoadingErrorHandler errorHandler,
IlrType... typeParameters) |
IlrClass |
mapJavaClass(java.lang.String rawClassName,
IlrType... typeParameters)Crée une instance d'une classe générique appelée
rawClassName liée aux paramètres de type donnés. |
IlrType |
mapJavaType(java.lang.Class javaClass)Ajoute la description de la classe Java
javaClass au modèle d'objet. |
IlrType |
mapJavaType(java.lang.String className)Ajoute la description de la classe Java nommée
className au modèle d'objet. |
IlrType |
mapJavaType(java.lang.String className,
IlrObjectModel.ClassLoadingErrorHandler errorHandler) |
boolean |
merge(IlrObjectModel objectModel)Fusionne
objectModel dans ce modèle d'objet. |
boolean |
merge(IlrObjectModel objectModel,
IlrSelector selector)Fusionne le sous-ensemble de
objectModel défini par selector dans ce modèle d'objet. |
boolean |
merge(IlrObjectModel objectModel,
IlrSelector selector,
java.util.Iterator initialTypes)Fusionne le sous-ensemble de
objectModel défini par selector et initialTypes dans ce modèle d'objet. |
boolean |
remove(IlrSelector selector)Supprime le sous-ensemble de ce modèle d'objet défini par l'argument
selector . |
boolean |
removeClass(IlrClass aClass)Supprime la classe
aClass de ce modèle d'objet. |
void |
setClassLoader(java.lang.ClassLoader classLoader)Définit le chargeur de classe utilisé par les méthodes
mapJavaType(String) et mapJavaClass(String) . |
void |
setJavaClassLookupEnabled(boolean flag)Obsolète.
A partir de JRules 6.0, utilisez à la place
IlrObjectModel.Kind transmis au moment de la création. |
void |
setMappingComponentProperties(boolean flag)Active ou désactive le mappage des propriétés des composants.
|
boolean |
visit(IlrObjectModel.Visitor visitor)Obsolète.
Utilisez
IlrVisitor à la place. |
isPropertyPersistent, setPersistentProperty, setPersistentPropertygetPropertyValue, getPropertyValue, propertyNames, removeProperty, setPropertyValueacceptJava.lang.ClassLoader getClassLoader ()
setClassLoader.Void setClassLoader (java.lang.ClassLoader classLoader)
mapJavaType(String) et mapJavaClass(String) . Si le chargeur de classe est null, la méthode Class.forName est utilisée pour charger les classes. Si le chargeur de classe doit être défini, ne le faites qu'après avoir créé le modèle d'objet, avant que des classes ne soient ajoutées.Initialement, la propriété du chargeur de classe est null.
IlrObjectModel.Kind getKind ()
IlrObjectModel.Platform getPlatform ()
Boolean isDynamicallyLoadingClasses ()
true si la recherche de classe Java est activée. Lorsqu'elle est désactivée, la méthode mapJavaType(String) se comporte de la même manière que la méthode getType(String) . Cela s'applique également au mapJavaClass(String) qui se comporte comme la méthode getClass(String) .Void setJavaClassLookupEnabled (indicateur booléen)
IlrObjectModel.Kind transmis au moment de la création.Si cette propriété doit être définie, faites cela juste après la création du modèle d'objet, avant que des classes ne soient ajoutées.
Si le type de modèle d'objet est IlrObjectModel.Kind.NONNATIVE, cette propriété est initialement false, sinon elle est true.
java.lang.UnsupportedOperationException -si la recherche de classe ne peut pas être activée / désactivée.Void setMappingComponentProperties (indicateur booléen)
Cette propriété modifie la façon dont les classes Java sont mappées à IlrClasses.
Par défaut, cette propriété est true. Les propriétés de composant sont mappées comme décrit ici:
IlrObjectModel.Kind.NATIVE , les méthodes get et set sont mappées aux IlrMethodcorrespondants et à IlrComponentProperty ou IlrIndexedComponentProperty, conformément aux conventions JavaBeans.IlrObjectModel.Kind.BUSINESS , les méthodes get et set sont liées aux IlrAttributecorrespondantes, conformément aux conventions JavaBeans.setXXX sans méthode getXXX correspondante sera mappée à un attribut en lecture seule (voir IlrAttribute.isReadonly()).getXXX sans méthode setXXX correspondante sera mappée à un attribut en écriture seule (voir IlrAttribute.isWriteonly()).getXXX et setXXX sera mappée à un attribut.mappingComponentProperties a pour valeur false, il n'y a pas de traitement spécial des méthodes get et set. Ils sont simplement mappés en tant que méthodes et aucune propriété de composant, propriété de composant indexé ou attributs ne sont créés.Boolean isMappingComponentProperties ()
true si le mappage des propriétés de composant est activé.setMappingComponentProperties(boolean)Fusion booléenne (IlrObjectModel objectModel)
objectModel dans ce modèle d'objet.java.lang.RuntimeException -si le modèle d'objet cible n'est pas modifiableobjectModel -Modèle d'objet source.true si l'opération aboutit.fusion booléenne (IlrObjectModel objectModel, Sélecteur IlrSelector )
objectModel défini par selector dans ce modèle d'objet.Pour qu'un élément de modèle soit fusionné, il doit être accepté par le sélecteur avec tous les autres éléments de modèle dont il dépend.
Si le sélecteur donné rejette une classe (par exemple, C) mais accepte un attribut d'une autre classe de type C, l'attribut ne sera pas fusionné car son type a été rejeté. Il en va de même pour les types de paramètres, les types de retour et les types d'exception ainsi que pour les classes par rapport à leurs superclasses et superinterfaces.
java.lang.RuntimeException -si le modèle d'objet cible n'est pas modifiableobjectModel -Modèle d'objet source.selector -Sélecteur de sous-ensemble de modèle d'objet. Si null , le modèle d'objet est complètement fusionné.true si l'opération aboutit.fusion booléenne (IlrObjectModel objectModel, Sélecteur IlrSelector , Types d'initialTypes java.util.Iterator)
objectModel défini par selector et initialTypes dans ce modèle d'objet.Cette méthode fusionne les classes et les énumérations données par l'itérateur initialTypes avec leurs membres (attributs, méthodes et balises). D'autres types, non présents dans initialTypes mais indirectement requis (tels que les types d'attribut, etc.), sont également écrits, mais leurs membres sont omis.
Remarque: Pour qu'un élément de modèle soit fusionné, il doit également être accepté par le sélecteur indiqué avec tous les autres éléments de modèle dont il dépend.
Il est recommandé d'utiliser IlrSelectors.dynamicTypes(model) comme valeur du paramètre initialTypes afin que les classes liées aux classes Java réelles ne soient pas sérialisées.
java.lang.RuntimeException -si le modèle d'objet cible n'est pas modifiableobjectModel -Modèle d'objet source.selector -Sélecteur de sous-ensemble de modèle d'objet.initialTypes -Un itérateur qui itère sur les classes qui doivent être entièrement fusionnées.true si l'opération aboutit.IlrType addJavaClass (java.lang.Class javaClass)
javaClass au modèle d'objet. L'API de réflexion Java est utilisée.Cette méthode ajoute un IlrClass reflétant la classe Java donnée avec ses attributs, constructeurs et méthodes public . Il ajoute également toutes les autres classes requises (telles que les types d'attributs public , etc.), mais sans leurs attributs et méthodes. Aucune des classes ajoutées n'est liée à leurs classes Java d'origine (par exemple, la méthode IlrType.getJavaClass renvoie null).
Si un IlrClass ayant le même nom qualifié complet que la classe Java donnée existait avant l'appel de cette méthode, ce IlrClass est mis à jour pour refléter la classe Java donnée.
javaClass -Classe Java source.IlrClass ou d'un IlrPrimitiveType.IlrType mapJavaType (java.lang.Class javaClass)
javaClass au modèle d'objet.Remarque: Si un type portant le même nom existe déjà, il est simplement renvoyé. Sinon, si le nom est déjà utilisé par un package, null est renvoyé. Sinon, un nouveau IlrType mappage du javaClass donné est ajouté au modèle d'objet et il est renvoyé.
Remarque: seuls les membres public de la classe Java sont reflétés via l'objet IlrClass mappé.
Ce qui se passe lorsqu'une classe Java est mappée à un IlrType dépend du type de modèle d'objet.
IlrObjectModel.Kind.NATIVE , le type renvoyé contient une référence à la classe Java d'origine qui peut être extraite en appelant la méthode IlrType.getNativeClass() . L'élément IlrType est dit lié à la classe Java.Si un élément IlrClass donné est lié à une classe Java et que l'un des éléments suivants est demandé:
mapJavaType(Class) .IlrObjectModel.Kind.BUSINESS , le type renvoyé ne contient pas de référence à la classe Java d'origine. Tous les membres de classe Java sont mappés à des instances IlrMember . Si un type utilisé dans un membre ou en tant que superclasse n'était pas auparavant présent dans le modèle d'objet, il est créé en tant que référence manquante (voir IlrType.isMissingReference()).javaClass -Classe Java source.IlrClass ou d'un IlrPrimitiveType.IlrClass mapJavaClass (java.lang.Class javaClass)
mapJavaType(Class) et, si le type renvoyé est un IlrClass, il est renvoyé, sinon null est renvoyé.javaClass -Classe Java source.IlrClass ou d'un IlrPrimitiveType.IlrClass mapJavaClass (java.lang.String rawClassName, IlrType... TypeParameters)
rawClassName liée aux paramètres de type donnés.rawClassName -typeParameters -IlrClass mapJavaClass (java.lang.String rawClassName, IlrObjectModel.ClassLoadingErrorHandler errorHandler, IlrType... TypeParameters)
IlrType mapJavaType (java.lang.String nom_classe)
className au modèle d'objet. Notez que même si le chargeur de classe défini dans ce modèle d'objet est utilisé pour extraire la classe Java, le paramètre className doit être spécifié à l'aide de la convention du langage Java au lieu de la convention java.lang.ClassLoader.loadClass (par exemple: int[] sous la forme "int [ ]" et non "[ I").Méfiez-vous que si un type portant le nom qualifié indiqué existe dans le modèle d'objet avant l'appel de cette méthode, ce type est renvoyé alors qu'il peut être défini différemment de la classe Java portant le même nom.
Le nom de classe peut être le nom d'une instance d'une classe générique. Par exemple, cette méthode peut être appelée avec le paramètre "java.util.Collection < java.lang.String>". Si la plateforme Java actuelle prend en charge les génériques, une instance de IlrClass est renvoyée. Dans ses informations génériques (IlrClass.getGenericInfo()), les paramètres de type (IlrGenericInfo.getTypeParameters()) contiennent le IlrClass java.lang.String.
Remarque: Cette méthode est sensible à la valeur renvoyée par isDynamicallyLoadingClasses(). Si la recherche de classe Java n'est pas activée, cette méthode renvoie null.
className -Nom de classe Java source.IlrType mapJavaType (java.lang.String nom_classe, IlrObjectModel.ClassLoadingErrorHandler errorHandler)
IlrClass mapJavaClass (java.lang.String nom_classe)
mapJavaType(String) et, si le type renvoyé est un IlrClass, il est renvoyé, sinon null est renvoyé.className -Nom de classe Java source.IlrClass mapJavaClass (java.lang.String nom_classe, IlrObjectModel.ClassLoadingErrorHandler errorHandler)
boolean remove (sélecteurIlrSelector )
selector .selector -Sélecteur de sous-ensemble de modèle d'objet.Valeur booléenne removeClass (IlrClass aClass)
aClass de ce modèle d'objet.aClass -Classe à supprimer.IlrPackage getDefaultPackage ()
java, ilog, etc.). Le package par défaut peut également contenir des classes et des énumérations.IlrClass getStringClass ()
java.lang.String .IlrPackage getPackage (java.lang.String nom_qualification_complète)
fullyQualifiedName.fullyQualifiedName -Nom qualifié complet.IlrType getType (java.lang.String nom_qualification_complète)
fullyQualifiedName.fullyQualifiedName -Nom qualifié complet.IlrClass getClass (java.lang.String nom_qualification_complète)
fullyQualifiedName.fullyQualifiedName -Nom qualifié complet.IlrClass getClass (java.lang.String rawClassName, IlrType[ ] typeParameters)
rawClassName liée aux paramètres de type donnés.rawClassName -Instance de la classe générique rawClassName .typeParameters -Paramètres de type donnés.IlrClass getGenericClass (java.lang.String rawClassName, Int numberOfTypeParameters)
IlrClass getClassReference (java.lang.Class javaClass)
mapJavaClass(Class). Pour un modèle métier, elle renvoie une classe ordinaire si la classe Java a déjà été mappée, sinon elle renvoie une référence manquante (voir IlrType.isMissingReference()).IlrType getTypeReference (java.lang.Class javaClass)
mapJavaType(Class). Pour un modèle métier, il renvoie un type normal si la classe Java a déjà été mappée, sinon il renvoie une référence manquante (voir IlrType.isMissingReference()).IlrClass getClassReference (java.lang.String fqn)
IlrType.isMissingReference().IlrClass getClassReference (java.lang.String fqn, IlrType[ ] typeParameters)
IlrType.isMissingReference().IlrType getTypeReference (java.lang.String fqn)
IlrType.isMissingReference().visite booléenne (visiteurIlrObjectModel.Visitor )
IlrVisitor à la place.visitPackge du visiteur appliquée au package par défaut du modèle d'objet.visitor -Visiteur.true si la méthode visitPackage du visiteur renvoie true.AllPackages java.util.Iterator ()
Java.util.Iterator allEnums ()
Java.util.Iterator allClasses ()
Java.util.List getPrimitiveTypes ()
IlrPrimitiveType getPrimitiveType (nom java.lang.String)
name.IlrType getVoidType ()
void .IlrType getBooleanType ()
boolean .IlrType getByteType ()
byte .IlrType getCharType ()
char .IlrType getFloatType ()
float .IlrType getDoubleType ()
double .IlrType getShortType ()
short .IlrType getIntType ()
int .IlrType getLongType ()
long .IlrResources getResources ()
null.© Copyright IBM Corp. 1987, 2022