Hallo Laksh,
die Variable timedata hat eine Reference
-Annotation:
@Reference(policy = ReferencePolicy.DYNAMIC, policyOption = ReferencePolicyOption.GREEDY, cardinality = ReferenceCardinality.OPTIONAL)
private volatile Timedata timedata = null;
Diese Declarative Services Annotation sorgt dafür, dass das OSGi Framework zur Laufzeit einen Service injiziert, der das Timedata
-Interface implementiert.
Declarative Services werden an sehr vielen Stellen in OpenEMS verwendet, um die Komponenten miteinander zu verbinden. Es lohnt sich hier auf jeden Fall, sich etwas tiefer einzulesen:
http://blog.vogella.com/2016/06/21/getting-started-with-osgi-declarative-services/
http://docs.osgi.org/specification/osgi.cmpn/7.0.0/service.component.html
Gruß,
Stefan