All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sourceforge.squirrel_sql.client.update.gui.ArtifactStatus Maven / Gradle / Ivy

/*
 * Copyright (C) 2007 Rob Manning
 * [email protected]
 *
 * 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 net.sourceforge.squirrel_sql.client.update.gui;

import java.io.Serializable;

import net.sourceforge.squirrel_sql.client.update.UpdateUtil;
import net.sourceforge.squirrel_sql.client.update.xmlbeans.ArtifactXmlBean;
import net.sourceforge.squirrel_sql.fw.util.StringManager;
import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory;

/**
 * Data object that contains information about available artifact updates.  Each
 * instance describes the status of one single update artifact.
 * 
 * @author manningr
 */
public class ArtifactStatus implements Serializable {

   private transient static final long serialVersionUID = 3902196017013411091L;

   /** Internationalized strings for this class. */
   private transient static final StringManager s_stringMgr = 
      StringManagerFactory.getStringManager(ArtifactStatus.class);
   
   private interface i18n extends Serializable {
      //i18n[ArtifactStatus.translationLabel=translation]
      String TRANSLATION_LABEL = s_stringMgr.getString("ArtifactStatus.translationLabel");
      
      //i18n[ArtifactStatus.coreLabel=core]
      String CORE_LABEL = s_stringMgr.getString("ArtifactStatus.coreLabel");
      
      //i18n[ArtifactStatus.pluginLabel=plugin]
      String PLUGIN_LABEL = s_stringMgr.getString("ArtifactStatus.pluginLabel");
   }
      
   /** the name of the artifact */
   private String name = null;
   
   /** the type of the artifact (e.g. Core, Plugin, Translation (I18n)) */
   private String type;
   
   /** boolean indicating whether or not the artifact is currently installed */
   private boolean installed;
   
   /** The type of this artifact, which is displayed to the user */
   private String displayType;
   
   /** The action to take with this artifact */
   private ArtifactAction artifactAction = ArtifactAction.NONE;

   /** The size of the artifact in bytes */
	private long size;

	/** The checksum of the artifact */
	private long checksum;
   
	public ArtifactStatus() {}
	
	/**
	 * Constructs an ArtifactStatus from the specified ArtifactXmlBean
	 * 
	 * @param artifactXmlBean
	 */
	public ArtifactStatus(ArtifactXmlBean artifactXmlBean) {
		this.name = artifactXmlBean.getName();
		this.installed = artifactXmlBean.isInstalled();
		this.size = artifactXmlBean.getSize();
		this.checksum = artifactXmlBean.getChecksum();
		setType(artifactXmlBean.getType());
	}
	
   /**
    * @return the _name
    */
   public String getName() {
      return name;
   }

   /**
    * @param name the _name to set
    */
   public void setName(String name) {
      this.name = name;
   }

   /**
    * @return the _type
    */
   public String getType() {
      return type;
   }

   /**
    * @param type the _type to set
    */
   public void setType(String type) {
      this.type = type;
   	if (type == null) {
   		return;
   	}
      if (type.equals(UpdateUtil.TRANSLATION_ARTIFACT_ID)) {
         this.displayType = i18n.TRANSLATION_LABEL;
      }
      if (type.equals(UpdateUtil.CORE_ARTIFACT_ID)) {
         this.displayType = i18n.CORE_LABEL;
      }
      if (type.equals(UpdateUtil.PLUGIN_ARTIFACT_ID)) {
         this.displayType = i18n.PLUGIN_LABEL;
      }      
   }

   public boolean isCoreArtifact() {
      return UpdateUtil.CORE_ARTIFACT_ID.equals(this.type);
   }
   
   public boolean isPluginArtifact() {
      return UpdateUtil.PLUGIN_ARTIFACT_ID.equals(this.type);
   }
   
   public boolean isTranslationArtifact() {
      return UpdateUtil.TRANSLATION_ARTIFACT_ID.equals(this.type);
   }
   
   /**
    * @return the installed
    */
   public boolean isInstalled() {
      return installed;
   }

   /**
    * @param installed the installed to set
    */
   public void setInstalled(boolean installed) {
      this.installed = installed;
   }

   /**
    * @return the artifactAction
    */
   public ArtifactAction getArtifactAction() {
      return artifactAction;
   }

   /**
    * @param action the artifactAction to set
    */
   public void setArtifactAction(ArtifactAction artifactAction) {
      this.artifactAction = artifactAction;
   }

   /**
    * @return the displayType
    */
   public String getDisplayType() {
      return displayType;
   }

   /**
    * @param displayType the displayType to set
    */
   public void setDisplayType(String displayType) {
      this.displayType = displayType;
   }

   /**
    * @see java.lang.Object#hashCode()
    */
   @Override
   public int hashCode() {
      final int prime = 31;
      int result = 1;
      result = prime * result + ((name == null) ? 0 : name.hashCode());
      result = prime * result + ((type == null) ? 0 : type.hashCode());
      return result;
   }

   /**
    * @see java.lang.Object#equals(java.lang.Object)
    */
   @Override
   public boolean equals(Object obj) {
      if (this == obj)
         return true;
      if (obj == null)
         return false;
      if (getClass() != obj.getClass())
         return false;
      final ArtifactStatus other = (ArtifactStatus) obj;
      if (name == null) {
         if (other.name != null)
            return false;
      } else if (!name.equals(other.name))
         return false;
      if (type == null) {
         if (other.type != null)
            return false;
      } else if (!type.equals(other.type))
         return false;
      return true;
   }

	/**
	  * Constructs a String with all attributes
	  * in name = value format.
	  *
	  * @return a String representation 
	  * of this object.
	  */
	 public String toString()
	 {
	     final String TAB = "    ";
	     
	     String retValue = "";
	     
	     retValue = "ArtifactStatus ( "
	         + super.toString() + TAB
	         + "name = " + this.name + TAB
	         + "type = " + this.type + TAB
	         + "installed = " + this.installed + TAB
	         + "displayType = " + this.displayType + TAB
	         + "artifactAction = " + this.artifactAction + TAB
	         + " )";
	 
	     return retValue;
	 }
	 
	/**
	 * Sets the size (in bytes) of the artifact.
	 * 
	 * @param size the size of the file.
	 */
	public void setSize(long size)
	{
		this.size = size;
	}

	/**
	 * @return the size
	 */
	public long getSize()
	{
		return size;
	}
	
	/**
	 * Sets the checksum of the file.
	 * 
	 * @param checksum the checksum of the file.
	 */
	public void setChecksum(long checksum)
	{
		this.checksum = checksum;
	}

	/**
	 * Returns the checksum of the file.
	 * 
	 * @return the checksum the checksum of the file.
	 */
	public long getChecksum()
	{
		return checksum;
	}

   
   
   
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy