Giriş
Bu arayüzü gerçekleştiren sınıf NullFederateAmbassador. Kendi sınıfımızı bundan kalıtabiliriz.
discoverObjectInstance metodu - ObjectInstanceHandle + ObjectClassHandle + String
1. Birinci parametre instance için kullanılan handle nesnesidir.
2. İkinci parametre instance'ın ait olduğu class için kullanılan handle nesnesidir. Elimizde şöyle bir hiyerarşi olsun
1. Birinci parametre instance için kullanılan handle nesnesidir.
2. İkinci parametre instance'ın ait olduğu class için kullanılan handle nesnesidir. Elimizde şöyle bir hiyerarşi olsun
Karşı taraf Bar nesnesi yarattı ancak benim federem Bar (handle 20 olsun) sınıfı yerine Foo (handle 19 olsun) sınıfının dinliyor olsun. Bu durumda ObjectClass olarak Bar yani 19 alırız.Foo <- Bar
3. Üçüncü parametre objectName yani Foo'nun tam yolu ile belirtilen ismidir.
reflectAttributedValues metodu - ObjectInstanceHandle + AttributeHandleValueMap + byte [] userSuppliedFlag + OrderType sentOrdering + TransportationTypeHandle theTransport+ SupplemantaReflectInfo
Aslında bu metodun 3 tane daha overload edilmiş hali var. En basit olanı bu.
Bu metodda bize bir nesne gelmiştir. Sadece ObjectInstanceHandle ve AttributeHandleMap önemli.
AttributeHandleValueMap aslında şöyle tanımlı
public interface AttributeHandleValueMap extends Map<AttributeHandle,byte[]> {...}
Kod kabaca şöyle
Map<ObjectInstanceHandle,Object> objectMap = ...;Map<AttributeHandle,Field> fieldMap = ...;Object obj = objectMap.get(objectInstanceHandle);for (Entry<AttributeHandle,byte[]> entry : attributeHandleValueMap){Field field = fieldMap .get(entry.key());//burada decode işlemi yapılır ve field'a atanır}
removeObjectInstance metodu - ObjectInstanceHandle + byte [] userSuppliedFlag + OrderType sentOrdering + SupplementalRemoveInfo
Aslında bu metodun 3 tane daha overload edilmiş hali var. En basit olanı bu.
receiveInteraction metodu - InteractionClassHandle + ParameterHandleValueMap + byte [] userSuppliedFlag + OrderType sentOrdering + TransportationTypeHandle theTransport+ SupplementalReceiveInfo
Aslında bu metodun 3 tane daha overload edilmiş hali var. En basit olanı bu.
Bu metodda bize bir Interaction gelmiştir. Sadece InteractionClassHandle ve ParameterHandleValueMap önemli. ParameterHandleValueMap aslında şöyle tanımlı
public interface ParameterHandleValueMap extends Map<ParameterHandle,byte[]> {...}
Kod kabaca şöyle
Map<InteractionClassHandle,Object> interactionMap = ...;Map<ParameterHandle,Field> parameterMap = ...;Object obj = interactionMap .get(interactionClassHandle);for (Entry<ParameterHandle,byte[]> entry : parameterHandleValueMap){Field field = parameterMap.get(entry.key());//burada decode işlemi yapılır ve field'a atanır}
Hiç yorum yok:
Yorum Gönder