/*
 * FindBugs - Find Bugs in Java programs
 * Copyright (C) 2005, University of Maryland
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

package edu.umd.cs.findbugs;

import java.io.IOException;
import java.util.Date;

import edu.umd.cs.findbugs.xml.XMLAttributeList;
import edu.umd.cs.findbugs.xml.XMLOutput;
import edu.umd.cs.findbugs.xml.XMLWriteable;

A version of an analyzed application. Application versions are uniquely identified by a sequence number, which represents a run of FindBugs on the application. Timestamp is when FindBugs was run (according to System.currentTimeMillis()), and the release name is available if the user provided it.
Author:David Hovemeyer
/** * A version of an analyzed application. Application versions are uniquely * identified by a sequence number, which represents a run of FindBugs on the * application. Timestamp is when FindBugs was run (according to * System.currentTimeMillis()), and the release name is available if the user * provided it. * * @author David Hovemeyer */
public class AppVersion implements XMLWriteable, Cloneable {
XML element name for a stored AppVersion object.
/** * XML element name for a stored AppVersion object. */
public static final String ELEMENT_NAME = "AppVersion"; private final long sequence; private long timestamp; private String releaseName; private int numClasses; private int codeSize; public AppVersion(long sequence, long time, String name) { this.sequence = sequence; this.timestamp = time; this.releaseName = name; } public AppVersion(long sequence, Date time, String name) { this.sequence = sequence; this.timestamp = time.getTime(); this.releaseName = name; } public AppVersion(long sequence) { this.sequence = sequence; this.timestamp = System.currentTimeMillis(); this.releaseName = ""; } /* * (non-Javadoc) * * @see java.lang.Object#clone() */ @Override public Object clone() { try { return super.clone(); } catch (CloneNotSupportedException e) { throw new AssertionError(e); } }
Returns:Returns the sequence.
/** * @return Returns the sequence. */
public long getSequenceNumber() { return sequence; }
Returns:Returns the timestamp.
/** * @return Returns the timestamp. */
public long getTimestamp() { if (timestamp <= 0) { return System.currentTimeMillis(); } return timestamp; }
Returns:Returns the releaseName.
/** * @return Returns the releaseName. */
public String getReleaseName() { return releaseName; }
Params:
  • timestamp – The timestamp to set.
/** * @param timestamp * The timestamp to set. */
public AppVersion setTimestamp(long timestamp) { this.timestamp = timestamp; return this; }
Params:
  • releaseName – The releaseName to set.
/** * @param releaseName * The releaseName to set. */
public AppVersion setReleaseName(String releaseName) { this.releaseName = releaseName; return this; } /* * (non-Javadoc) * * @see * edu.umd.cs.findbugs.xml.XMLWriteable#writeXML(edu.umd.cs.findbugs.xml * .XMLOutput) */ @Override public void writeXML(XMLOutput xmlOutput) throws IOException { xmlOutput.openCloseTag( ELEMENT_NAME, new XMLAttributeList().addAttribute("sequence", String.valueOf(sequence)) .addAttribute("timestamp", String.valueOf(timestamp)).addAttribute("release", releaseName) .addAttribute("codeSize", String.valueOf(codeSize)) .addAttribute("numClasses", String.valueOf(numClasses))); } /* * (non-Javadoc) * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder buf = new StringBuilder(); buf.append(String.valueOf(sequence)); buf.append(','); buf.append(String.valueOf(timestamp)); buf.append(','); buf.append(releaseName); buf.append(','); buf.append(codeSize); buf.append(','); buf.append(codeSize); return buf.toString(); }
Params:
  • numClasses – The numClasses to set.
/** * @param numClasses * The numClasses to set. */
public AppVersion setNumClasses(int numClasses) { this.numClasses = numClasses; return this; }
Returns:Returns the numClasses.
/** * @return Returns the numClasses. */
public int getNumClasses() { return numClasses; }
Params:
  • codeSize – The codeSize to set.
/** * @param codeSize * The codeSize to set. */
public AppVersion setCodeSize(int codeSize) { this.codeSize = codeSize; return this; }
Returns:Returns the codeSize.
/** * @return Returns the codeSize. */
public int getCodeSize() { return codeSize; } }