Coverage details for com.martiansoftware.nailgun.Alias

LineHitsSource
1 /*
2  
3   Copyright 2004, Martian Software, Inc.
4  
5   Licensed under the Apache License, Version 2.0 (the "License");
6   you may not use this file except in compliance with the License.
7   You may obtain a copy of the License at
8  
9   http://www.apache.org/licenses/LICENSE-2.0
10  
11   Unless required by applicable law or agreed to in writing, software
12   distributed under the License is distributed on an "AS IS" BASIS,
13   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   See the License for the specific language governing permissions and
15   limitations under the License.
16  
17 */
18  
19 package com.martiansoftware.nailgun;
20  
21 /**
22  * Provides a means to map memorable, short names to classes in order
23  * to make the issuing of commands more convenient. For example, an
24  * Alias can map the "<code>mycommand</code>" command to the <code>com.yourdomain.yourpackage.YourClass</code>
25  * class. Obviously, it's a lot easier to type "<code>ng mycommand</code>" than the fully
26  * qualified class name.
27  *
28  * @author <a href="http://www.martiansoftware.com/contact.html">Marty Lamb</a>
29  */
30 public class Alias implements Comparable {
31  
32     /**
33      * The alias name
34      */
35     private String name;
36     
37     /**
38      * The alias description (may be used to provide help to users)
39      */
40     private String description;
41     
42     /**
43      * The class providing a <code>main()</code> or <code>nailMain()</code> method
44      */
45     private Class clazz;
46     
47     /**
48      * Creates a new Alias with the specified properties.
49      * @param name the alias name (short command)
50      * @param description a description of the command
51      * @param clazz the class implementing the command
52      */
5312    public Alias(String name, String description, Class clazz) {
5412        if (name == null) throw (new IllegalArgumentException("Alias must have a name."));
5512        this.name = name.trim();
5612        if (this.name.length() == 0) throw (new IllegalArgumentException("Alias must have a name."));
57         
5812        if (clazz == null) throw (new IllegalArgumentException("Alias must have an associated class."));
5912        this.description = description;
6012        this.clazz = clazz;
6112    }
62     
63     /**
64      * Returns the <code>Class</code> object providing a static <code>main()</code> or <code>nailMain()</code> method
65      * for this command.
66      * @return the <code>Class</code> object providing a static <code>main()</code> or <code>nailMain()</code> method
67      * for this command.
68      */
69     public Class getAliasedClass() {
701        return(clazz);
71     }
72     
73     /**
74      * Returns the name of the aliased command
75      * @return the name of the aliased command
76      */
77     public String getName() {
7840        return (name);
79     }
80     
81     /**
82      * Returns a description for the aliased command
83      * @return a description for the aliased command
84      */
85     public String getDescription() {
861        return (description);
87     }
88     
89     /**
90      * @see Object#hashCode()
91      */
92     public int hashCode() {
930        return (name.hashCode());
94     }
95     
96     /**
97      * Checks whether two Aliases have the same name. Does <b>not</b>
98      * compare any other fields.
99      * @param o the other Alias to check
100      * @return true if the specified Alias has the same name as this Alias.
101      */
102     public boolean equals(Object o) {
1036        return (compareTo(o) == 0);
104     }
105     
106     /**
107      * Compares Alias <b>names</b> - no other fields are compared.
108      * @see Comparable#compareTo(Object)
109      */
110     public int compareTo(Object o) {
11114        return (name.compareTo(((Alias) o).getName()));
112     }
113 }

this report was generated by version 1.0.5 of jcoverage.
visit www.jcoverage.com for updates.

copyright © 2003, jcoverage ltd. all rights reserved.
Java is a trademark of Sun Microsystems, Inc. in the United States and other countries.