Mercurial > hg > blitz_stable
diff src/org/dancres/blitz/stats/FieldsStat.java @ 0:3dc0c5604566
Initial checkin of blitz 2.0 fcs - no installer yet.
author | Dan Creswell <dan.creswell@gmail.com> |
---|---|
date | Sat, 21 Mar 2009 11:00:06 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/dancres/blitz/stats/FieldsStat.java Sat Mar 21 11:00:06 2009 +0000 @@ -0,0 +1,72 @@ +package org.dancres.blitz.stats; + +import java.util.Collection; + +/** + <p>Tracks the known fields of a particular type known to the blitz core. + One can consider this a summary of the schema of the Entry.</p> + */ +public class FieldsStat implements Stat, StatGenerator { + private long theId = StatGenerator.UNSET_ID; + + private String theType; + private String[] theFields; + + public FieldsStat(String aType, Collection aFieldNames) { + theType = aType; + String[] myFields = new String[aFieldNames.size()]; + theFields = (String[]) aFieldNames.toArray(myFields); + } + + private FieldsStat(long anId) { + theId = anId; + } + + public void setId(long anId) { + theId = anId; + } + + public long getId() { + return theId; + } + + public String[] getFields() { + return theFields; + } + + public String getType() { + return theType; + } + + private void setType(String aType) { + theType = aType; + } + + private void setFields(String[] aFields) { + theFields = aFields; + } + + public Stat generate() { + String[] myFields = new String[theFields.length]; + + System.arraycopy(theFields, 0, myFields, 0, theFields.length); + + FieldsStat myStat = new FieldsStat(theId); + myStat.setFields(myFields); + myStat.setType(theType); + + return myStat; + } + + public String toString() { + StringBuffer myFields = new StringBuffer("Fields for " + theType + + ": "); + + for (int i = 0; i < theFields.length; i++) { + myFields.append(theFields[i]); + myFields.append(", "); + } + + return myFields.toString(); + } +}