215 lines
6.4 KiB
Java
215 lines
6.4 KiB
Java
import java.util.Collection;
|
|
import java.util.Iterator;
|
|
import java.util.Map;
|
|
import java.util.Map.Entry;
|
|
import java.util.Set;
|
|
import java.util.jar.Attributes;
|
|
|
|
public class AttributesImpl
|
|
{
|
|
private Attributes attributes;
|
|
|
|
/** Constructs a new, empty Attributes object with default size. **/
|
|
public AttributesImpl()
|
|
{
|
|
attributes = new Attributes();
|
|
}
|
|
|
|
/**
|
|
* Constructs a new Attributes object with the same attribute name-value
|
|
* mappings as in the specified Attributes.
|
|
**/
|
|
public AttributesImpl(Attributes attr)
|
|
{
|
|
attributes = new Attributes(attr);
|
|
}
|
|
|
|
/**
|
|
* Constructs a new, empty Attributes object with the specified initial
|
|
* size.
|
|
**/
|
|
public AttributesImpl(int size)
|
|
{
|
|
attributes = new Attributes(size);
|
|
}
|
|
|
|
/** Removes all attributes from this Map. **/
|
|
public void clear()
|
|
{
|
|
attributes.clear();
|
|
}
|
|
|
|
/** Returns a copy of the Attributes **/
|
|
public Object clone()
|
|
{
|
|
return attributes.clone();
|
|
}
|
|
|
|
/** Returns true if this Map contains the specified attribute name (key). **/
|
|
public boolean containsKey(Object key)
|
|
{
|
|
return attributes.containsKey(key);
|
|
}
|
|
|
|
/**
|
|
* Returns true if this Map maps one or more attribute names (keys) to the
|
|
* specified value.
|
|
**/
|
|
public boolean containsValue(Object value)
|
|
{
|
|
return attributes.containsValue(value);
|
|
}
|
|
|
|
/**
|
|
* Returns a Collection view of the attribute name-value mappings contained
|
|
* in this Map.
|
|
**/
|
|
public Set<Map.Entry<Object, Object>> entrySet()
|
|
{
|
|
return attributes.entrySet();
|
|
}
|
|
|
|
/**
|
|
* Returns the value of the specified attribute name, or null if the
|
|
* attribute name was not found.
|
|
**/
|
|
public Object get(Object key)
|
|
{
|
|
return attributes.get(key);
|
|
}
|
|
|
|
/**
|
|
* Returns the value of the specified Attributes.Name, or null if the
|
|
* attribute was not found.
|
|
**/
|
|
public String getValue(Attributes.Name name)
|
|
{
|
|
return attributes.getValue(name);
|
|
}
|
|
|
|
/**
|
|
* Returns the value of the specified attribute name, specified as a string,
|
|
* or null if the attribute was not found.
|
|
**/
|
|
public String getValue(String name)
|
|
{
|
|
return attributes.getValue(name);
|
|
}
|
|
|
|
/** Returns true if this Map contains no attributes. **/
|
|
public boolean isEmpty()
|
|
{
|
|
return attributes.isEmpty();
|
|
}
|
|
|
|
/** Returns a Set view of the attribute names (keys) contained in this Map. **/
|
|
public Set<Object> keySet()
|
|
{
|
|
return attributes.keySet();
|
|
}
|
|
|
|
/**
|
|
* Associates the specified value with the specified attribute name (key) in
|
|
* this Map.
|
|
**/
|
|
public Object put(Object key, Object value)
|
|
{
|
|
return attributes.put(key, value);
|
|
}
|
|
|
|
/**
|
|
* Copies all of the attribute name-value mappings from the specified
|
|
* Attributes to this Map.
|
|
**/
|
|
public void putAll(Map<?, ?> m)
|
|
{
|
|
attributes.putAll(m);
|
|
}
|
|
|
|
/**
|
|
* Associates the specified value with the specified attribute name,
|
|
* specified as a String.
|
|
**/
|
|
public String putValue(String name, String value)
|
|
{
|
|
return attributes.putValue(name, value);
|
|
}
|
|
|
|
/** Removes the attribute with the specified name (key) from this Map **/
|
|
public Object remove(Object key)
|
|
{
|
|
return attributes.remove(key);
|
|
}
|
|
|
|
/** Returns the number of attributes in this Map. **/
|
|
public int size()
|
|
{
|
|
return attributes.size();
|
|
}
|
|
|
|
/** Returns a Collection view of the attribute values contained in this Map. **/
|
|
public Collection<Object> values()
|
|
{
|
|
return attributes.values();
|
|
}
|
|
|
|
public static void main(String... arg)
|
|
{
|
|
Attributes.Name CLASS_PATH = new Attributes.Name("CLASS_PATH");
|
|
Attributes.Name CONTENT_TYPE = new Attributes.Name("CONTENT_TYPE");
|
|
Attributes.Name MANIFEST_VERSION = new Attributes.Name("MANIFEST_VERSION");
|
|
AttributesImpl attribute = new AttributesImpl();
|
|
attribute.put(CLASS_PATH, "root/sub_dir/class_path");
|
|
attribute.put(CONTENT_TYPE, "UTF-8");
|
|
attribute.put(MANIFEST_VERSION, "2");
|
|
attribute.putValue("MAIN_CLASS", "TESTMAIN.java");
|
|
System.out.println("the key set of the Attributes is ");
|
|
Set<Object> keySet = attribute.keySet();
|
|
Iterator<Object> itr = keySet.iterator();
|
|
while (itr.hasNext())
|
|
{
|
|
System.out.print(itr.next() + "\t");
|
|
}
|
|
System.out.println();
|
|
System.out.println("the values of the Attributes is ");
|
|
Collection<Object> collectionValues = attribute.values();
|
|
itr = collectionValues.iterator();
|
|
while (itr.hasNext())
|
|
{
|
|
System.out.print(itr.next() + "\t");
|
|
}
|
|
System.out.println();
|
|
System.out.println("the entry set of the Attributes is ");
|
|
Iterator<Entry<Object, Object>> eitr;
|
|
Set<Entry<Object, Object>> entrySet = attribute.entrySet();
|
|
eitr = entrySet.iterator();
|
|
while (eitr.hasNext())
|
|
{
|
|
System.out.println(eitr.next() + "\t");
|
|
}
|
|
System.out.println("the Attributes contains Key CLASS_PATH:" + attribute.containsKey(CLASS_PATH));
|
|
System.out.println("the Attributes contains Value TESTMAIN.java :"
|
|
+ attribute.containsValue("TESTMAIN.java"));
|
|
System.out.println("the size of the Attributes is " + attribute.size());
|
|
attribute.clear();
|
|
if (attribute.isEmpty())
|
|
System.out.println("the Attributes is empty");
|
|
else
|
|
System.out.println("the Attributes is not empty");
|
|
}
|
|
}
|
|
|
|
/*
|
|
the key set of the Attributes is
|
|
MAIN_CLASS MANIFEST_VERSION CONTENT_TYPE CLASS_PATH
|
|
the values of the Attributes is
|
|
TESTMAIN.java 2 UTF-8 root/sub_dir/class_path
|
|
the entry set of the Attributes is
|
|
MAIN_CLASS=TESTMAIN.java
|
|
MANIFEST_VERSION=2
|
|
CONTENT_TYPE=UTF-8
|
|
CLASS_PATH=root/sub_dir/class_path
|
|
the Attributes contains Key CLASS_PATH:true
|
|
the Attributes contains Value TESTMAIN.java :true
|
|
the size of the Attributes is 4
|
|
the Attributes is empty |