Um eine Projektkomponente zu erzeugen ist in zwei Schritten vorzugehen:
- Ermitteln der Bibliothekskomponente die zu Instanziieren ist.
- Erzeugen und Einhängen der Projektkomponente in die mechatronische Struktur mittels der Instanziierungs-API.
import com.mind8.mechatronic.skill.api.IMechatronicInstantiationAPI;
import com.mind8.mechatronic.skill.api. NoMatchingPlaceholderException;
import com.mind8.mechatronic.skill.eos.TypeClass;
String absName = 'Pfuderer_Golfballmaschine.Mechatronik.RTS24';
rts = TypeClass.findType(self.getUnitOfWork(), absName);
//Ermitteln der Bibliothekskomponente
name="Pfuderer_Baukasten.Mechatronik.Stationen.Einsetzen.Einsetzen";
type=TypeClass.findType(uow,name);
//Instanz erzeugen
try
{
//Die folgende Methode fügt das Objekt auf den ersten passenden
//Einfügeplatz von hinten ein.
//Gibt es mehrere passende Einfügeplätze muss dieser zunächst mittels der
//PlaceholderAPI ermittelt werden.
inst = IMechatronicInstantiationAPI.DEFAULT.instantiate(rts, type, "St07Einsetzen", true);
}
catch (NoMatchingPlaceholderException nmpe)
{
// error handling
}
Die Instanziierungs-API bietet verschiedene Methoden, um den Instanziierungsprozess genauer zu kontrollieren: es können konkrete Platzhalter angegeben oder die Berechnung von Erweiterungspunkten unterdrückt werden. Bei mehreren Instanziierungen in Folge kann über Wiederverwendung des Instaziierungskontextes die Performance optimiert werden. Die einzelnen Methoden der API IMechatronicInstantiationAPI.DEFAULT sind im Folgenden aufgeführt:
Die Methode instantiate ist mit verschiedenen Signaturen implementiert:
- instantiate(instantiationTarget, MechatronicObjectClass classToInstantiate, String instanceName, boolean instantiateExtensions)
- instantiate(instantiationTarget, MechatronicObjectClass classToInstantiate, String instanceName, boolean instantiateExtensions, IMechatronicInstantiationContext context)
- instantiate(instantiationTarget, MechatronicObjectClass classToInstantiate, String instanceName, boolean instantiateExtensions, String placeholderName, IMechatronicInstantiationContext context)
- instantiate(instantiationTarget, MechatronicObjectClass classToInstantiate, String instanceName, boolean instantiateExtensions, String placeholderName)
- instantiate(instantiationTarget, MechatronicObjectClass classToInstantiate, String instanceName, boolean instantiateExtensions, Placeholder placeholder)