01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * 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: package org.apache.ivy.util.extendable;
19:
20: import java.util.Map;
21:
22: public interface ExtendableItem {
23: /**
24: * Gets the value of an attribute Can be used to access the value of a standard attribute (like
25: * organisation, revision) or of an extra attribute.
26: *
27: * @param attName
28: * the name of the attribute to get
29: * @return the value of the attribute, null if the attribute doesn't exist
30: */
31: String getAttribute(String attName);
32:
33: /**
34: * Gets the value of a standard attribute Can be used only to access the value of a standard
35: * attribute (like organisation, revision), not an extra one
36: *
37: * @param attName
38: * the name of the standard attribute to get
39: * @return the value of the attribute, null if the attribute doesn't exist
40: */
41: String getStandardAttribute(String attName);
42:
43: /**
44: * Gets the value of an extra attribute Can be used only to access the value of an extra
45: * attribute, not a standard one (like organisation, revision)
46: *
47: * @param attName
48: * the name of the extra attribute to get. This name can be either qualified or
49: * unqualified.
50: * @return the value of the attribute, null if the attribute doesn't exist
51: */
52: String getExtraAttribute(String attName);
53:
54: /**
55: * Returns a Map of all attributes of this extendable item, including standard and extra ones.
56: * The Map keys are attribute names as Strings, and values are corresponding attribute values
57: * (as String too). Extra attributes are included in unqualified form only.
58: *
59: * @return A Map instance containing all the attributes and their values.
60: */
61: Map getAttributes();
62:
63: /**
64: * Returns a Map of all standard attributes of this extendable item. The Map keys are attribute
65: * names as Strings, and values are corresponding attribute values (as String too)
66: *
67: * @return A Map instance containing all the standard attributes and their values.
68: */
69: Map getStandardAttributes();
70:
71: /**
72: * Returns a Map of all extra attributes of this extendable item. The Map keys are
73: * <b>unqualified</b> attribute names as Strings, and values are corresponding attribute values
74: * (as String too)
75: *
76: * @return A Map instance containing all the extra attributes and their values.
77: * @see #getQualifiedExtraAttributes()
78: */
79: Map getExtraAttributes();
80:
81: /**
82: * Returns a Map of all extra attributes of this extendable item.
83: * <p>
84: * The Map keys are <b>qualified</b> attribute names as Strings, and values are corresponding
85: * attribute values (as String too).
86: * </p>
87: * <p>
88: * An attribute name is qualified with a namespace exactly the same way xml attributes are
89: * qualified. Thus qualified attribute names are of the form <code>prefix:name</code>
90: * </p>
91: *
92: * @return A Map instance containing all the extra attributes and their values.
93: * @see #getExtraAttributes()
94: */
95: Map getQualifiedExtraAttributes();
96: }
|