com.springsource.util.osgi.manifest.parse.standard
Class StandardHeaderVisitor

java.lang.Object
  extended by com.springsource.util.osgi.manifest.parse.standard.StandardHeaderVisitor
All Implemented Interfaces:
HeaderVisitor

public class StandardHeaderVisitor
extends java.lang.Object
implements HeaderVisitor

Standard implementation of the HeaderVisitor. This implementations collects up the names, attributes and directives visited and for each clause creates a HeaderDeclaration. These are then available at the end of the parse through getHeaderDeclaration() and getFirstHeaderDeclaration() Concurrent Semantics
Threadsafe.

Author:
Andy Clement

Field Summary
private  java.util.Map<java.lang.String,java.lang.String> attributes
           
private  java.util.Map<java.lang.String,java.lang.String> directives
           
private  java.util.List<HeaderDeclaration> headerDeclarations
           
private  java.util.List<java.lang.String> names
           
 
Constructor Summary
StandardHeaderVisitor()
           
 
Method Summary
 void clauseEnded()
          Record a new HeaderDeclaration and reset the collections accumulating names, attributes and directives.
 void endvisit()
          Called when the end of the input has been reached.
 HeaderDeclaration getFirstHeaderDeclaration()
           
 java.util.List<HeaderDeclaration> getHeaderDeclarations()
           
 void initialize()
          Called ahead of parsing a header - allowing state to be reset in a reused visitor
 void visitAttribute(java.lang.String name, java.lang.String value)
          Visit a new attribute (parsed from input of the form name=value)
 void visitDirective(java.lang.String name, java.lang.String value)
          Visit a new directive (parsed from input of the form name:=value)
 void visitSymbolicName(java.lang.String name)
          Called to visit a symbolic name.
 void visitUniqueName(java.lang.String name)
          Called to visit a unique name.
 void visitWildcardName(java.lang.String name)
          Called to visit a wildcard name.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

headerDeclarations

private java.util.List<HeaderDeclaration> headerDeclarations

names

private java.util.List<java.lang.String> names

directives

private java.util.Map<java.lang.String,java.lang.String> directives

attributes

private java.util.Map<java.lang.String,java.lang.String> attributes
Constructor Detail

StandardHeaderVisitor

public StandardHeaderVisitor()
Method Detail

visitAttribute

public void visitAttribute(java.lang.String name,
                           java.lang.String value)
Description copied from interface: HeaderVisitor
Visit a new attribute (parsed from input of the form name=value)

Specified by:
visitAttribute in interface HeaderVisitor

visitDirective

public void visitDirective(java.lang.String name,
                           java.lang.String value)
Description copied from interface: HeaderVisitor
Visit a new directive (parsed from input of the form name:=value)

Specified by:
visitDirective in interface HeaderVisitor

visitSymbolicName

public void visitSymbolicName(java.lang.String name)
Description copied from interface: HeaderVisitor
Called to visit a symbolic name. These are of the form: "symbolic-name :: = token('.'token)*". So basically a sequence of dot separated tokens.

Specified by:
visitSymbolicName in interface HeaderVisitor

visitUniqueName

public void visitUniqueName(java.lang.String name)
Description copied from interface: HeaderVisitor
Called to visit a unique name. These are of the form: "unique-name :: = identifier('.'identifier)*". So basically a sequence of dot separated identifiers..

Specified by:
visitUniqueName in interface HeaderVisitor

visitWildcardName

public void visitWildcardName(java.lang.String name)
Description copied from interface: HeaderVisitor
Called to visit a wildcard name. These are similar to a unique name but wildcards are permitted. These are valid wildcarded names: '*' or 'com.foo.*' or 'com.foo.goo'.

Specified by:
visitWildcardName in interface HeaderVisitor

endvisit

public void endvisit()
Description copied from interface: HeaderVisitor
Called when the end of the input has been reached.

Specified by:
endvisit in interface HeaderVisitor

clauseEnded

public void clauseEnded()
Record a new HeaderDeclaration and reset the collections accumulating names, attributes and directives.

Specified by:
clauseEnded in interface HeaderVisitor

getFirstHeaderDeclaration

public HeaderDeclaration getFirstHeaderDeclaration()
Specified by:
getFirstHeaderDeclaration in interface HeaderVisitor
Returns:
the first header declaration or null if there are none.

getHeaderDeclarations

public java.util.List<HeaderDeclaration> getHeaderDeclarations()
Specified by:
getHeaderDeclarations in interface HeaderVisitor
Returns:
a list of all HeaderDeclarations if this visitor has been collecting the information. Empty list if nothing has been collected

initialize

public void initialize()
Called ahead of parsing a header - allowing state to be reset in a reused visitor

Specified by:
initialize in interface HeaderVisitor