001package org.andromda.core.configuration; 002 003import java.io.Serializable; 004import org.apache.commons.lang.StringUtils; 005import org.apache.commons.lang.builder.ToStringBuilder; 006 007/** 008 * This class represents properties which are used to configure Namespace objects which are made available to configure 009 * Plugin instances. 010 * 011 * @author Chad Brandon 012 * @see org.andromda.core.configuration.Namespace 013 * @see org.andromda.core.configuration.Namespaces 014 */ 015public class Property 016 implements Serializable 017{ 018 private static final long serialVersionUID = 34L; 019 020 /** 021 * The property name. 022 */ 023 private String name; 024 025 /** 026 * Returns the name. This is used by Namespaces to find this property. 027 * 028 * @return String 029 */ 030 public String getName() 031 { 032 return name; 033 } 034 035 /** 036 * Sets the name. 037 * 038 * @param name The name to set 039 */ 040 public void setName(final String name) 041 { 042 this.name = StringUtils.trimToEmpty(name); 043 } 044 045 /** 046 * The property value. 047 */ 048 private String value; 049 050 /** 051 * Returns the value. This is the value that is stored in this property. 052 * 053 * @return the value as a String 054 */ 055 public String getValue() 056 { 057 return value; 058 } 059 060 /** 061 * Sets the value. 062 * 063 * @param value The value to set 064 */ 065 public void setValue(final String value) 066 { 067 this.value = StringUtils.trimToEmpty(value); 068 } 069 070 /** 071 * Stores whether or not this property should be ignored. 072 */ 073 private boolean ignore = false; 074 075 /** 076 * If a property is set to ignore then Namespaces will ignore it if it doesn't exist on lookup (otherwise errors 077 * messages are output). This is useful if you have a plugin on a classpath (its unavoidable), but you don't want to 078 * see the errors messages (since it really isn't an error). Another use of it would be to ignore outlet entires for 079 * cartridges if you wanted to generate some from the cartridge outlets, but not others. 080 * 081 * @return Returns the ignore value true/false. 082 */ 083 public boolean isIgnore() 084 { 085 return ignore; 086 } 087 088 /** 089 * @param ignore The ignore to set. 090 * @see #isIgnore() 091 */ 092 public void setIgnore(final boolean ignore) 093 { 094 this.ignore = ignore; 095 } 096 097 /** 098 * @see Object#toString() 099 */ 100 public String toString() 101 { 102 return ToStringBuilder.reflectionToString(this); 103 } 104}