Class AasConnector<CO,CI>
- java.lang.Object
-
- de.iip_ecosphere.platform.connectors.AbstractConnector<java.lang.Object,java.lang.Object,CO,CI>
-
- de.iip_ecosphere.platform.connectors.aas.AasConnector<CO,CI>
-
- Type Parameters:
CO- the output type to the IIP-Ecosphere platformCI- the input type from the IIP-Ecosphere platform
- All Implemented Interfaces:
de.iip_ecosphere.platform.connectors.Connector<java.lang.Object,java.lang.Object,CO,CI>,de.iip_ecosphere.platform.connectors.events.EventHandlingConnector,de.iip_ecosphere.platform.connectors.model.AbstractModelAccess.NotificationChangedListener
@MachineConnector(hasModel=true, supportsModelStructs=false, supportsEvents=false) public class AasConnector<CO,CI> extends de.iip_ecosphere.platform.connectors.AbstractConnector<java.lang.Object,java.lang.Object,CO,CI>A generic Asset Administration Shell connector. We use hierarchical names to identify sub-models and elements within. Requires the the registry URL part, e.g. "registry" inConnectorParameter.getEndpointPath(). TheConnectorParameter.getApplicationId()denotes the AASs to operate on. If the application id is- a non-wildcard string, the uniquely denoted AAS is used for reading and writing/calling.
- a wildcard string in Java String Regex format, the denoted AAS are used for reading. AAS names are updated during polling. Currently, only the first matching AAS is enabled for writing/calling.
- Author:
- Holger Eichelberger, SSE
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private classAasConnector.AasModelAccessImplements the model access for AAS.static classAasConnector.DescriptorThe descriptor of this connector (see META-INF/services).
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<java.lang.String,de.iip_ecosphere.platform.support.aas.Aas>connectedAASprivate static java.lang.ObjectDUMMYprivate de.iip_ecosphere.platform.support.aas.AasFactoryfactoryprivate java.util.concurrent.atomic.AtomicBooleaninPollingprivate static org.slf4j.LoggerLOGGERprivate java.lang.StringnonPollingAasprivate de.iip_ecosphere.platform.connectors.ConnectorParameterparamsprivate java.util.regex.Patternpatternprivate java.lang.StringpollingAasprivate java.lang.ThreadpollingThreadprivate de.iip_ecosphere.platform.support.aas.Registryregistry
-
Constructor Summary
Constructors Constructor Description AasConnector(de.iip_ecosphere.platform.connectors.types.ProtocolAdapter<java.lang.Object,java.lang.Object,CO,CI>... adapter)Creates an instance and installs the protocol adapter.AasConnector(de.iip_ecosphere.platform.support.aas.AasFactory factory, de.iip_ecosphere.platform.connectors.AdapterSelector<java.lang.Object,java.lang.Object,CO,CI> selector, de.iip_ecosphere.platform.connectors.types.ProtocolAdapter<java.lang.Object,java.lang.Object,CO,CI>... adapter)Creates an instance and installs the protocol adapter.AasConnector(de.iip_ecosphere.platform.support.aas.AasFactory factory, de.iip_ecosphere.platform.connectors.types.ProtocolAdapter<java.lang.Object,java.lang.Object,CO,CI>... adapter)Creates an instance and installs the protocol adapter.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleancheckCache(java.lang.Object data)protected voidconnectImpl(de.iip_ecosphere.platform.connectors.ConnectorParameter params)protected voiddisconnectImpl()voiddispose()protected voiddoPolling()java.lang.StringenabledEncryption()protected voiderror(java.lang.String message, java.lang.Throwable th)java.lang.StringgetName()protected java.lang.Objectread()private voidreceivedAas(java.util.Map<java.lang.String,de.iip_ecosphere.platform.support.aas.Aas> connectedAAS)Calls#received(Object)for each AAS inconnectedAAS.java.lang.StringsupportedEncryption()voidtrigger(de.iip_ecosphere.platform.connectors.events.ConnectorTriggerQuery query)private booleanupdateAas(java.util.regex.Pattern pattern, java.util.Map<java.lang.String,de.iip_ecosphere.platform.support.aas.Aas> connectedAAS, boolean modifyNotPollingAas)Updates the AAS.protected voidwriteImpl(java.lang.Object data)-
Methods inherited from class de.iip_ecosphere.platform.connectors.AbstractConnector
configureModelAccess, connect, createTlsContext, disconnect, enableNotifications, enablePolling, getCachingStrategy, getCachingStrategyCls, getConnectorInputType, getConnectorOutputType, getConnectorParameter, getInitCachingStrategyCls, getProtocolInputType, getProtocolOutputType, getSelector, initializeModelAccess, initSelector, installPollTask, isPolling, notificationsChanged, notifyReconfigured, received, received, request, request, setReceptionCallback, trigger, uninstallPollTask, useTls, write
-
-
-
-
Field Detail
-
LOGGER
private static final org.slf4j.Logger LOGGER
-
DUMMY
private static final java.lang.Object DUMMY
-
connectedAAS
private java.util.Map<java.lang.String,de.iip_ecosphere.platform.support.aas.Aas> connectedAAS
-
factory
private de.iip_ecosphere.platform.support.aas.AasFactory factory
-
params
private de.iip_ecosphere.platform.connectors.ConnectorParameter params
-
pattern
private java.util.regex.Pattern pattern
-
registry
private de.iip_ecosphere.platform.support.aas.Registry registry
-
inPolling
private java.util.concurrent.atomic.AtomicBoolean inPolling
-
pollingAas
private transient java.lang.String pollingAas
-
pollingThread
private transient java.lang.Thread pollingThread
-
nonPollingAas
private java.lang.String nonPollingAas
-
-
Constructor Detail
-
AasConnector
@SafeVarargs public AasConnector(de.iip_ecosphere.platform.connectors.types.ProtocolAdapter<java.lang.Object,java.lang.Object,CO,CI>... adapter)
Creates an instance and installs the protocol adapter.- Parameters:
adapter- the protocol adapter- Throws:
java.lang.IllegalArgumentException- ifadapteris null or empty or adapters are null
-
AasConnector
@SafeVarargs public AasConnector(de.iip_ecosphere.platform.support.aas.AasFactory factory, de.iip_ecosphere.platform.connectors.types.ProtocolAdapter<java.lang.Object,java.lang.Object,CO,CI>... adapter)Creates an instance and installs the protocol adapter.- Parameters:
factory- define the AasFactory to use, if null useAasFactory.getInstance()adapter- the protocol adapter(s)- Throws:
java.lang.IllegalArgumentException- ifadapteris null or empty or adapters are null
-
AasConnector
@SafeVarargs public AasConnector(de.iip_ecosphere.platform.support.aas.AasFactory factory, de.iip_ecosphere.platform.connectors.AdapterSelector<java.lang.Object,java.lang.Object,CO,CI> selector, de.iip_ecosphere.platform.connectors.types.ProtocolAdapter<java.lang.Object,java.lang.Object,CO,CI>... adapter)Creates an instance and installs the protocol adapter.- Parameters:
factory- define the AasFactory to use, if null useAasFactory.getInstance()selector- the adapter selector (null leads to a default selector for the first adapter)adapter- the protocol adapter(s)- Throws:
java.lang.IllegalArgumentException- ifadapteris null or empty or adapters are null
-
-
Method Detail
-
connectImpl
protected void connectImpl(de.iip_ecosphere.platform.connectors.ConnectorParameter params) throws java.io.IOException
-
updateAas
private boolean updateAas(java.util.regex.Pattern pattern, java.util.Map<java.lang.String,de.iip_ecosphere.platform.support.aas.Aas> connectedAAS, boolean modifyNotPollingAas)Updates the AAS.- Parameters:
pattern- the AAS id matching patternconnectedAAS- the actually known connected AAS for this updatemodifyNotPollingAas- whethernonPollingAasmay be modified by this call as a side effect- Returns:
trueif new AAS were added,falseelse
-
receivedAas
private void receivedAas(java.util.Map<java.lang.String,de.iip_ecosphere.platform.support.aas.Aas> connectedAAS)
Calls#received(Object)for each AAS inconnectedAAS.- Parameters:
connectedAAS- the received AAS to be ingested
-
checkCache
protected boolean checkCache(java.lang.Object data)
-
doPolling
protected void doPolling()
-
disconnectImpl
protected void disconnectImpl() throws java.io.IOException
-
dispose
public void dispose()
-
getName
public java.lang.String getName()
-
writeImpl
protected void writeImpl(java.lang.Object data) throws java.io.IOException
-
read
protected java.lang.Object read() throws java.io.IOException
-
trigger
public void trigger(de.iip_ecosphere.platform.connectors.events.ConnectorTriggerQuery query)
-
error
protected void error(java.lang.String message, java.lang.Throwable th)
-
supportedEncryption
public java.lang.String supportedEncryption()
-
enabledEncryption
public java.lang.String enabledEncryption()
-
-