javacommons/utils/javasrc/com/nokia/mj/impl/utils/Attribute.java
changeset 21 2a9601315dfc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/utils/javasrc/com/nokia/mj/impl/utils/Attribute.java	Mon May 03 12:27:20 2010 +0300
@@ -0,0 +1,149 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+package com.nokia.mj.impl.utils;
+
+/**
+ * Class for holding attribute information.
+ * Instances of this class are immutable.
+ */
+public class Attribute
+{
+    private String iName = null;
+    private String iValue = null;
+    private boolean iTrusted = false;
+
+    /**
+     * Private default constructor, not to be used by clients.
+     */
+    private Attribute()
+    {
+    }
+
+    /**
+     * Constructor for untrusted attribute.
+     * @param aName attribute name
+     * @param aValue attribute value
+     */
+    public Attribute(String aName, String aValue)
+    {
+        this(aName, aValue, false);
+    }
+
+    /**
+     * Constructor for attribute.
+     * @param aName attribute name
+     * @param aValue attribute value
+     * @param aTrusted tells if attribute is trusted
+     */
+    public Attribute(String aName, String aValue, boolean aTrusted)
+    {
+        if (aName == null)
+        {
+            throw new NullPointerException
+            ("Attribute name is null, value is " + aValue);
+        }
+        if (aValue == null)
+        {
+            throw new NullPointerException
+            ("Attribute value is null, name is " + aName);
+        }
+        iName = aName;
+        iValue = aValue;
+        iTrusted = aTrusted;
+    }
+
+    /**
+     * Get attribute name.
+     * @return attribute name
+     */
+    public String getName()
+    {
+        return iName;
+    }
+
+    /**
+     * Get attribute value.
+     * @return attribute value
+     */
+    public String getValue()
+    {
+        return iValue;
+    }
+
+    /**
+     * Get int type attribute value.
+     * @return attribute value
+     * @throws NumberFormatException if value is not a valid integer
+     */
+    public int getIntValue()
+    {
+        return Integer.parseInt(iValue);
+    }
+
+    /**
+     * Is attribute trusted. Attribute is trusted if it is defined
+     * in Manifest of trusted application, otherwise it is untrusted.
+     * @return true if attribute is trusted, false otherwise
+     */
+    public boolean isTrusted()
+    {
+        return iTrusted;
+    }
+
+    /**
+     * Returns a hash code value for this object.
+     */
+    public int hashCode()
+    {
+        return iName.hashCode() + iValue.hashCode();
+    }
+
+    /**
+     * Indicates whether given object is equal to this one.
+     */
+    public boolean equals(Object aObj)
+    {
+        if (!(aObj instanceof Attribute))
+        {
+            return false;
+        }
+        Attribute attr = (Attribute)aObj;
+        if (this.getName().equals(attr.getName()) &&
+                this.getValue().equals(attr.getValue()) &&
+                this.isTrusted() == attr.isTrusted())
+        {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * Returns string representation of this object.
+     */
+    public String toString()
+    {
+        StringBuffer buf = new StringBuffer();
+        buf.append(getName()).append(": ").append(getValue());
+        if (isTrusted())
+        {
+            buf.append(" (trusted)");
+        }
+        return buf.toString();
+    }
+}