001/* 002 * $Id: ParameterSet.java,v 1.3 2011/03/24 16:06:31 davep Exp $ 003 * 004 * This file is part of McIDAS-V 005 * 006 * Copyright 2007-2011 007 * Space Science and Engineering Center (SSEC) 008 * University of Wisconsin - Madison 009 * 1225 W. Dayton Street, Madison, WI 53706, USA 010 * https://www.ssec.wisc.edu/mcidas 011 * 012 * All Rights Reserved 013 * 014 * McIDAS-V is built on Unidata's IDV and SSEC's VisAD libraries, and 015 * some McIDAS-V source code is based on IDV and VisAD source code. 016 * 017 * McIDAS-V is free software; you can redistribute it and/or modify 018 * it under the terms of the GNU Lesser Public License as published by 019 * the Free Software Foundation; either version 3 of the License, or 020 * (at your option) any later version. 021 * 022 * McIDAS-V is distributed in the hope that it will be useful, 023 * but WITHOUT ANY WARRANTY; without even the implied warranty of 024 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 025 * GNU Lesser Public License for more details. 026 * 027 * You should have received a copy of the GNU Lesser Public License 028 * along with this program. If not, see http://www.gnu.org/licenses. 029 */ 030 031package edu.wisc.ssec.mcidasv; 032 033 034import org.w3c.dom.*; 035 036import java.util.ArrayList; 037import java.util.List; 038 039import ucar.unidata.util.StringUtil; 040 041 042/** 043 * An object to handle a saved parameter set. 044 */ 045public class ParameterSet { 046 047 /** Xml attribute name for the name */ 048 public static final String ATTR_NAME = "name"; 049 050 /** Xml attribute name for the category */ 051 public static final String ATTR_CATEGORY = "category"; 052 053 /** The name of the parameter set */ 054 private String name; 055 056 /** The category of the parameter set */ 057 private List<String> categories; 058 059 /** The type */ 060 private String type; 061 062 /** The XML element */ 063 private Element element; 064 065 /** prefix_ */ 066 private String uniquePrefix; 067 068 public ParameterSet(String name, String category, String type) { 069 this(name, category, type, null); 070 } 071 072 public ParameterSet(String name, List<String> categories, String type) { 073 this(name, categories, type, null); 074 } 075 076 public ParameterSet(String name, String category, String type, Element element) { 077 List<String> categories = PersistenceManager.stringToCategories(category); 078 this.name = name; 079 this.categories = categories; 080 this.type = type; 081 this.element = element; 082 } 083 084 public ParameterSet(String name, List<String>categories, String type, Element element) { 085 this.name = name; 086 this.categories = categories; 087 this.type = type; 088 this.element = element; 089 } 090 091 /** 092 * set the unique prefix 093 * 094 * @param p prefix 095 */ 096 protected void setUniquePrefix(String p) { 097 uniquePrefix = p; 098 } 099 100 /** 101 * Get the name to use with the categories as a prefix 102 * 103 * @return categorized name 104 */ 105 public String getCategorizedName() { 106 String catString = StringUtil.join("_", categories); 107 if (uniquePrefix != null) { 108 catString = uniquePrefix + catString; 109 } 110 return catString + name; 111 } 112 113 /** 114 * Set the Name property. 115 * 116 * @param value The new value for Name 117 */ 118 public void setName(String value) { 119 name = value; 120 } 121 122 /** 123 * Get the Name property. 124 * 125 * @return The Name 126 */ 127 public String getName() { 128 return name; 129 } 130 131 132 /** 133 * Set the Category property. 134 * 135 * @param value The new value for Category 136 */ 137 public void setCategories(List value) { 138 categories = value; 139 } 140 141 /** 142 * Get the Category property. 143 * 144 * @return The Category 145 */ 146 public List getCategories() { 147 return categories; 148 } 149 150 /** 151 * Set the Type property. 152 * 153 * @param value The new value for Type 154 */ 155 public void setType(String value) { 156 type = value; 157 } 158 159 /** 160 * Get the Type property. 161 * 162 * @return The Type 163 */ 164 public String getType() { 165 return type; 166 } 167 168 /** 169 * Set the Element property. 170 * 171 * @param value The new value for Element 172 */ 173 public void setElement(Element value) { 174 element = value; 175 } 176 177 /** 178 * Get the Element property. 179 * 180 * @return The Element 181 */ 182 public Element getElement() { 183 return element; 184 } 185 186 /** 187 * Full label 188 * 189 * @return The name. 190 */ 191 public String getLabel() { 192 return PersistenceManager.categoriesToString(categories) 193 + PersistenceManager.CATEGORY_SEPARATOR + name; 194 } 195 196 /** 197 * Override toString. 198 * 199 * @return The name. 200 */ 201 public String toString() { 202// String description = name + " { "; 203// NamedNodeMap attributes = element.getAttributes(); 204// for (int i=0; i<attributes.getLength(); i++) { 205// Node attribute = attributes.item(i); 206// description += attribute.getNodeName() + "=" + attribute.getNodeValue(); 207// if (i < attributes.getLength() - 1) description += ", "; 208// } 209// description += "}"; 210// return description; 211 return name; 212 } 213 214} 215