Tuesday, July 17, 2012

BasicElement: Code listing.

I wanted to provide a listing of the BasicElement module in my last entry. I decided I'd turn my last entry into a bit of a prattle when I found that I couldn't get the HTML to display properly. I'm putting this entry together because I think I've worked it out.

If one looks closely at the way the BasicElement interface is declared, one should be able to understand the basic tenet of the Clique Space concept: modelling the activity of the individual. In a way, I think that the term "model" does not explain this Clique Space(TM) thing enough. Also, I think that because of the the notion that every device - even the Agent Device - is subject to being represented in the Clique Space environment, this listing might also demonstrate that the verb "to model" and the verb "to control" are the same thing in Clique Space.

Modelling an activity is intuitively distinguished from controlling an activity; modelling means observing or perhaps merely simulating an activity whereas controlling an activity implies intervening in an activity going on in the real world, while that activity is transpiring. It is important to note that the Agent Device is a device like any other device to Clique Space for the same reasons that modelling and controlling Clique Space activity correspond.

Something that hosts a running instance which implements this interface is known to the BasicElement as the 'Device'. This Device has a CliqueSpaceContainer which contains all the Clique Spaces and Elements that the device knows of. The BasicElement is a collection of 'Properties'; these properties describe everything the Element is. Limiting Constraints are a type of property which, while potentially contained in all Elements, are expressed only in Participants. There is a really elegant relationship between a BasicElement's properties and a BasicParticipant's Limiting Constraints, but a description of this relationship might best perhaps be left to another entry.

Anyway, being that this prattle might just be seen by the reader as a bit of a distraction, here is the source code listing. I hope the reader respects the little bit of inoffensive asserting that I have included. I'm hoping my blog entries might inspire my readers to get in contact with me. What can you lose?


 1 /*
 2  * (C) Copyright Owen Thomas. All rights reserved.
 3  *  Express written permission must be obtained from Owen Thomas in order
 4  *  to reproduce all or part of this source or compiled code in a manner 
 5  *  specified in said permission.
 6  */
 7 
 8 package cliquespace.core.cliquespace.basic;

...some imports that needn't be disclosed...

40 /**
41  * @author Owen Thomas
45  */
46 public interface BasicElement<
47  D extends Device,
48  CS extends BasicCliqueSpace<D,CS,E,A,AP,APR,APN,MP,MPR,MPN,AF,C,I,P,CL,CSC>,
49  ID extends Identifier,
50  E extends BasicElement<D,CS,?extends Identifier,E,A,AP,APR,APN,MP,MPR,MPN,AF,C,I,P,CL,CSC,? extends Property>,
51  A extends BasicAxle<D,CS,?extends AxleIdentifier,E,A,AP,APR,APN,MP,MPR,MPN,AF,C,I,P,CL,CSC,? extends Property>,
52  AP extends BasicAccountProfile<D,CS,?extends AccountProfileIdentifier,E,A,AP,APR,APN,MP,MPR,MPN,AF,C,I,P,CL,CSC,? extends Property>,
53  APR extends BasicAccountProfileRoot<D,CS,?extends AccountProfileRootIdentifier,E,A,AP,APR,APN,MP,MPR,MPN,AF,C,I,P,CL,CSC,? extends Property>,
54  APN extends BasicAccountProfileNode<D,CS,?extends AccountProfileNodeIdentifier,E,A,AP,APR,APN,MP,MPR,MPN,AF,C,I,P,CL,CSC,? extends Property>,
55  MP extends BasicMediaProfile<D,CS,?extends MediaProfileIdentifier,E,A,AP,APR,APN,MP,MPR,MPN,AF,C,I,P,CL,CSC,? extends Property>,
56  MPR extends BasicMediaProfileRoot<D,CS,?extends MediaProfileRootIdentifier,E,A,AP,APR,APN,MP,MPR,MPN,AF,C,I,P,CL,CSC,? extends Property>,
57  MPN extends BasicMediaProfileNode<D,CS,?extends MediaProfileNodeIdentifier,E,A,AP,APR,APN,MP,MPR,MPN,AF,C,I,P,CL,CSC,? extends Property>,
58  AF extends BasicAffiliation<D,CS,?extends AffiliationIdentifier,E,A,AP,APR,APN,MP,MPR,MPN,AF,C,I,P,CL,CSC,? extends Property>,
59  C extends BasicConnection<D,CS,?extends ConnectionIdentifier,E,A,AP,APR,APN,MP,MPR,MPN,AF,C,I,P,CL,CSC,? extends Property>,
60  I extends BasicIdentity<D,CS,?extends IdentityIdentifier,E,A,AP,APR,APN,MP,MPR,MPN,AF,C,I,P,CL,CSC,? extends Property>,
61  P extends BasicParticipant<D,CS,?extends ParticipantIdentifier,E,A,AP,APR,APN,MP,MPR,MPN,AF,C,I,P,CL,CSC,? extends Property>,
62  CL extends BasicClique<D,CS,E,A,AP,APR,APN,MP,MPR,MPN,AF,C,I,P,CL,CSC>,
63  CSC extends CliqueSpaceContainer<D,CS,E,A,AP,APR,APN,MP,MPR,MPN,AF,C,I,P,CL,CSC>,
64  PR extends Property>
65 extends Element<CS,ID>{
The interface's body has been removed because the contents are trivial and don't help illustrate the point I am trying to make in this entry.
85 }
 
I do think the interface declaration is quite special. It shouldn't be too hard for the observant reader to realise that through this interface declaration, the declarations of the BasicCliqueSpace, BasicClique, and all the Basic~ Elements can be derived. This is because the very high degree of coupling. All of these parts of the Clique Space concept are interwoven to serve a common design purpose: Clique Space is designed to represent an individual in cyberspace.

1 comment:

  1. Those Russians are going nuts trying to get me to take a look at their stuff... ahhh... they know what to do.

    ReplyDelete