Instanziiert die classToInstantiate mit dem gegebenen instanceName auf dem durch placeholderName identifizierten Einfügeplatz am angegebenen instantiationTarget. Mittels des Boolean-Arguments instantiateExtensions kann kontrolliert werden, ob auf enthaltenen Erweiterungspunkte Objekte instanziiert werden. Ist der übergebene Einfügeplatz-Name null und kann kein passender ermittelt werden, wird eine NoMatchingPlaceholderException geworfen. Passt die classToInstantiate nicht zum gegebenen Einfügeplatz, wird eine PlaceholderNotMatchingException geworfen. Kann zu dem Einfügeplatz-Namen kein Einfügeplatz ermittelt werden, wird eine PlaceholderNotExistingException geworfen.
instantiate(instantiationTarget, MechatronicObjectClass classToInstantiate, String instanceName, boolean instantiateExtensions, String placeholderName) throws PlaceholderNotMatchingException, PlaceholderNotExistingException, NoMatchingPlaceholderException | |||
---|---|---|---|
Argument | ITopInstantiationTarget | instantiationTarget | Eine Mechatronische Komponente oder MechatronicRoot, unter welcher das neue Objekt angelegt wird |
MechatronicObjectClass | classToInstantiate | Die zu instanziierende Klasse | |
String | instanceName | Der Name des neuen Objektes. Wird null übergeben, bekommt das Objekt den Namen der Klasse. | |
Boolean | instantiateExtensions | Bei Übergabe von true werden innere Erweiterungspunkte während der Instanziierung berechnet, bei false nicht. | |
Placeholder | placeholder | Definiert den Einfügeplatz, an welchem das instanziierte Objekt eingefügt wird. | |
Rückgabewert | Component | Das instanziierte Objekt |
import com.mind8.mechatronic.skill.api.IMechatronicInstantiationAPI;
import com.mind8.mechatronic.skill.api. NoMatchingPlaceholderException;
import com.mind8.mechatronic.skill.api. PlaceholderNotMatchingException;
import com.mind8.mechatronic.skill.api. PlaceholderNotExistingException;
import com.mind8.mechatronic.skill.eos.TypeClass;
instantiationTarget = obj; // Argument in Command
absLibComp = "T_Mechatronic_ModularSystem.Functiongroups.Insert"; // Absolute name of library component to instantiate
instanceName = "Insert"; // Name of new instance
placeholder = "T_Mechatronic_ModularSystem.Stations.Feeder.Functiongroups";
classToInstantiate = TypeClass.findType(self.getUnitOfWork(), absLibComp);
instance = null;
try
{
instance = IMechatronicInstantiationAPI.DEFAULT.instantiate(instantiationTarget, classToInstantiate, instanceName, true, placeholder);
}
catch (NoMatchingPlaceholderException nmpe)
{
// error handling
}
catch (PlaceholderNotMatchingException pnme)
{
// error handling
}
catch (PlaceholderNotExistingException pnee)
{
// error handling
}
return instance;
Die Instanziierungsmethoden mit gegebenem Einfügeplatz gibt es auch noch in den Varianten mit wiederverwendbarem Kontext.