FindBugs™ 1.3.9

edu.umd.cs.findbugs.ba.interproc
Class PropertyDatabase<KeyType extends FieldOrMethodDescriptor,ValueType>

java.lang.Object
  extended by edu.umd.cs.findbugs.ba.interproc.PropertyDatabase<KeyType,ValueType>
Type Parameters:
KeyType - key type: either MethodDescriptor or FieldDescriptor
ValueType - value type: a value that summarizes some property of the associated key
Direct Known Subclasses:
FieldPropertyDatabase, MethodPropertyDatabase

public abstract class PropertyDatabase<KeyType extends FieldOrMethodDescriptor,ValueType>
extends java.lang.Object

Property database for interprocedural analysis.

Author:
David Hovemeyer

Constructor Summary
protected PropertyDatabase()
          Constructor.
 
Method Summary
protected abstract  ValueType decodeProperty(java.lang.String propStr)
          Subclasses must define this to instantiate the actual property value from its string encoding.
protected abstract  java.lang.String encodeProperty(ValueType property)
          Subclasses must define this to encode a property as a string for output to a file.
 java.util.Collection<java.util.Map.Entry<KeyType,ValueType>> entrySet()
           
 java.util.Set<KeyType> getKeys()
           
 ValueType getProperty(KeyType key)
          Get a property.
 boolean isEmpty()
          Return whether or not the database is empty.
protected abstract  KeyType parseKey(java.lang.String s)
          Parse a key from a String.
 void read(java.io.InputStream in)
          Read property database from an input stream.
 void readFromFile(java.lang.String fileName)
          Read property database from given file.
 ValueType removeProperty(KeyType key)
          Remove a property.
 void setProperty(KeyType key, ValueType property)
          Set a property.
 void write(java.io.OutputStream out)
          Write property database to an OutputStream.
protected abstract  void writeKey(java.io.Writer writer, KeyType key)
          Write an encoded key to given Writer.
 void writeToFile(java.lang.String fileName)
          Write property database to given file.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PropertyDatabase

protected PropertyDatabase()
Constructor. Creates an empty property database.

Method Detail

setProperty

public void setProperty(KeyType key,
                        ValueType property)
Set a property.

Parameters:
key - the key
property - the property

getProperty

public ValueType getProperty(KeyType key)
Get a property.

Parameters:
key - the key
Returns:
the property, or null if no property is set for this key

getKeys

public java.util.Set<KeyType> getKeys()

entrySet

public java.util.Collection<java.util.Map.Entry<KeyType,ValueType>> entrySet()

isEmpty

public boolean isEmpty()
Return whether or not the database is empty.

Returns:
true if the database is empty, false it it has at least one entry

removeProperty

public ValueType removeProperty(KeyType key)
Remove a property.

Parameters:
key - the key
Returns:
the old property, or null if there was no property defined for this key

readFromFile

public void readFromFile(java.lang.String fileName)
                  throws java.io.IOException,
                         PropertyDatabaseFormatException
Read property database from given file.

Parameters:
fileName - name of the database file
Throws:
java.io.IOException
MethodPropertyDatabaseFormatException
PropertyDatabaseFormatException

read

public void read(@WillClose
                 java.io.InputStream in)
          throws java.io.IOException,
                 PropertyDatabaseFormatException
Read property database from an input stream. The InputStream is guaranteed to be closed, even if an exception is thrown.

Parameters:
in - the InputStream
Throws:
java.io.IOException
MethodPropertyDatabaseFormatException
PropertyDatabaseFormatException

writeToFile

public void writeToFile(java.lang.String fileName)
                 throws java.io.IOException
Write property database to given file.

Parameters:
fileName - name of the database file
Throws:
java.io.IOException

write

public void write(@WillClose
                  java.io.OutputStream out)
           throws java.io.IOException
Write property database to an OutputStream. The OutputStream is guaranteed to be closed, even if an exception is thrown.

Parameters:
out - the OutputStream
Throws:
java.io.IOException

parseKey

protected abstract KeyType parseKey(java.lang.String s)
                                                             throws PropertyDatabaseFormatException
Parse a key from a String.

Parameters:
s - a String
Returns:
the decoded key
Throws:
PropertyDatabaseFormatException

writeKey

protected abstract void writeKey(java.io.Writer writer,
                                 KeyType key)
                          throws java.io.IOException
Write an encoded key to given Writer.

Parameters:
writer - the Writer
key - the key
Throws:
java.io.IOException

decodeProperty

protected abstract ValueType decodeProperty(java.lang.String propStr)
                                     throws PropertyDatabaseFormatException
Subclasses must define this to instantiate the actual property value from its string encoding.

Parameters:
propStr - String containing the encoded property
Returns:
the property
Throws:
MethodPropertyDatabaseFormatException
PropertyDatabaseFormatException

encodeProperty

protected abstract java.lang.String encodeProperty(ValueType property)
Subclasses must define this to encode a property as a string for output to a file.

Parameters:
property - the property
Returns:
a String which encodes the property

FindBugs™ 1.3.9

FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.