/*

 

   Patterns Framework (Pattern Implementation Structure Overview)

 

   Framework found in com.ibm.xtools.patterns.framework plug-in

   Sample implementations found in com.ibm.xtools.patterns.sample plug-in

 

*/

 

 

class Pattern extends AbstractPatternDefinition {

 

   ... initializes metadata (differs based on static vs. dynamic)

   ... initializes privately held pattern parameters

   ... declares pattern parameter dependencies (to trigger update calls on parameters)

 

   private class Instance extends AbstractPatternInstance {

      ... handles expand method for instance-directed expands (provides default)

      ... handles logic for target-based instance-behavior (provides default)

      ... handles naming of instance representations dynamically

   }

 

   private class Parameter [0..*] extends AbstractPatternParameter {

      ... initializes metadata (differs based on static vs. dynamic)

      ... declares optional OCL2 constraint for validating proposed values

      ... handles expand method for parameter-directed added values (provides default)

      ... handles expand method for parameter-directed removed values (provides default)

      ... handles expand method for parameter-directed maintained values

      ... handles update method for parameter-dependency notifications

      ... handles is valid method for validating proposed values (provides default)

   }

 

}