avalon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mcconn...@apache.org
Subject cvs commit: avalon-sandbox/meta/src/java/org/apache/avalon/meta/model/verifier ProfileVerifier.java
Date Sat, 07 Dec 2002 09:48:58 GMT
mcconnell    2002/12/07 01:48:58

  Modified:    meta/src/java/org/apache/avalon/meta/info
                        DependencyDescriptor.java Descriptor.java Type.java
               meta/src/java/org/apache/avalon/meta/model/verifier
                        ProfileVerifier.java
  Log:
  Small refinements arrising from assembly related work.
  
  Revision  Changes    Path
  1.4       +47 -1     avalon-sandbox/meta/src/java/org/apache/avalon/meta/info/DependencyDescriptor.java
  
  Index: DependencyDescriptor.java
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/meta/src/java/org/apache/avalon/meta/info/DependencyDescriptor.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DependencyDescriptor.java	30 Nov 2002 14:46:24 -0000	1.3
  +++ DependencyDescriptor.java	7 Dec 2002 09:48:57 -0000	1.4
  @@ -80,6 +80,10 @@
    */
   public final class DependencyDescriptor extends Descriptor
   {
  +
  +    private static final Version DEFAULT_VERSION = Version.getVersion( "1.0" );
  +
  +
       /**
        * The name the component uses to lookup dependency.
        */
  @@ -96,6 +100,16 @@
       private final boolean m_optional;
   
       /**
  +     * Creation of a new dependency descriptor using the default 1.0 version
  +     * @param role the role name that will be used by the type when looking up a service
  +     * @param service the interface service 
  +     */
  +    public DependencyDescriptor( final String role, String service )
  +    {
  +        this( role, service, DEFAULT_VERSION );
  +    }
  +
  +    /**
        * Creation of a new dependency descriptor.
        * @param role the role name that will be used by the type when looking up a service
        * @param service the version insterface service reference
  @@ -204,4 +218,36 @@
       {
           return "[dependency: '" + getReference() + " key: '" + getRole() + "']";
       }
  +
  +    /**
  +     * Compare this object with another for equality.
  +     * @param other the object to compare this object with
  +     * @return TRUE if the supplied object is a reference, service, or service
  +     *   descriptor that matches this objct in terms of classname and version
  +     */
  +    public boolean equals( Object other )
  +    {
  +        boolean match = false;
  +
  +        if( other instanceof DependencyDescriptor )
  +        {
  +            DependencyDescriptor dep = (DependencyDescriptor) other;
  +            if( dep.isOptional() != isOptional() )
  +            {
  +                return false;
  +            }
  +            if( !dep.getReference().equals( getReference() ) )
  +            {
  +                return false;
  +            }
  +            if( !dep.getReference().equals( getReference() ) )
  +            {
  +                return false;
  +            }
  +
  +            return super.equals( dep );
  +        }
  +        return false;
  +    }
  +
   }
  
  
  
  1.2       +42 -1     avalon-sandbox/meta/src/java/org/apache/avalon/meta/info/Descriptor.java
  
  Index: Descriptor.java
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/meta/src/java/org/apache/avalon/meta/info/Descriptor.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Descriptor.java	24 Nov 2002 12:58:26 -0000	1.1
  +++ Descriptor.java	7 Dec 2002 09:48:57 -0000	1.2
  @@ -132,4 +132,45 @@
               return (String[])m_attributes.keySet().toArray( EMPTY_SET );
           }
       }
  +
  +    /**
  +     * Compare this object with another for equality.
  +     * @param other the object to compare this object with
  +     * @return TRUE if the supplied object equivalent
  +     */
  +    public boolean equals( Object other )
  +    {
  +        if( other instanceof Descriptor )
  +        {
  +            Descriptor descriptor = (Descriptor) other;
  +            return compare( this, descriptor );
  +        }
  +        return false;
  +    }
  +
  +    private boolean compare( Descriptor primary, Descriptor secondary )
  +    {
  +        if( primary.getAttributeNames().length != secondary.getAttributeNames().length
)
  +        {
  +            return false;
  +        }
  +        String[] names = primary.getAttributeNames();
  +        for( int i=0; i<names.length; i++ )
  +        {
  +            String v1 = primary.getAttribute( names[i] );
  +            String v2 = secondary.getAttribute( names[i] );
  +            if( v1 == null )
  +            {
  +                if( v2 != null )
  +                {
  +                    return false;
  +                }
  +            }
  +            if( !v1.equals( v2 ) )
  +            {
  +                return false;
  +            }
  +        }
  +        return true;
  +    }
   }
  
  
  
  1.4       +4 -4      avalon-sandbox/meta/src/java/org/apache/avalon/meta/info/Type.java
  
  Index: Type.java
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/meta/src/java/org/apache/avalon/meta/info/Type.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Type.java	26 Nov 2002 18:04:22 -0000	1.3
  +++ Type.java	7 Dec 2002 09:48:57 -0000	1.4
  @@ -99,11 +99,11 @@
        *   required by the type
        * @param context a component context descriptor that declares the context type
        *   and context entry key and value classnames
  -     * @param services a set of service descriprors that detail the service that
  +     * @param services a set of service descriptors that detail the service that
        *   this component type is capable of supplying
  -     * @param dependencies a set of depedency descriprors that detail the service
  +     * @param dependencies a set of depedency descriptors that detail the service
        *   that this component type is depedent on
  -     * @param stages a set of stage descriprors that detail the extensiuon stage
  +     * @param stages a set of stage descriprors that detail the extension stage
        *   interfaces that this component requires a handler for
        * @param extensions a set of lifecycle extension capabilities that this
        *   componet can provide to its container during the process of stage
  
  
  
  1.2       +12 -3     avalon-sandbox/meta/src/java/org/apache/avalon/meta/model/verifier/ProfileVerifier.java
  
  Index: ProfileVerifier.java
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/meta/src/java/org/apache/avalon/meta/model/verifier/ProfileVerifier.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ProfileVerifier.java	24 Nov 2002 12:58:29 -0000	1.1
  +++ ProfileVerifier.java	7 Dec 2002 09:48:58 -0000	1.2
  @@ -154,7 +154,7 @@
   
           m_verifier.verifyType( name, clazz, interfaces, phases );
   
  -        verifyContextPresence( profile, clazz );
  +        //verifyContextPresence( profile, clazz );
       }
   
       /**
  @@ -169,6 +169,15 @@
                                             final Class clazz )
           throws VerifyException
       {
  +        if( profile == null )
  +        {
  +            throw new NullPointerException( "profile" );
  +        }
  +        if( clazz == null )
  +        {
  +            throw new NullPointerException( "clazz" );
  +        }
  +
           final Type info = profile.getType();
           final ContextDescriptor context = info.getContext();
           final int count = context.getEntrys().length;
  @@ -180,7 +189,7 @@
                   final String message =
                       REZ.getString( "metadata.declare-uneeded-entrys.error",
                                      profile.getName(),
  -                                   getClassname( profile ) );
  +                                   clazz.getName() );
                   throw new VerifyException( message );
               }
           }
  
  
  

--
To unsubscribe, e-mail:   <mailto:avalon-cvs-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:avalon-cvs-help@jakarta.apache.org>


Mime
View raw message