1 24 package org.riotfamily.revolt.definition; 25 26 import org.springframework.util.StringUtils; 27 28 29 36 public class Identifier { 37 38 public static final String QUOTED_DELIMITER = "`"; 39 40 private String name; 41 42 private boolean quoted; 43 44 public Identifier() { 45 } 46 47 public Identifier(String name) { 48 setName(name); 49 } 50 51 public String getName() { 52 return this.name; 53 } 54 55 public void setName(String name) { 56 if (name != null && name.startsWith(QUOTED_DELIMITER) 57 && name.endsWith(QUOTED_DELIMITER)) { 58 59 quoted = true; 60 name = StringUtils.delete(name, QUOTED_DELIMITER); 61 } 62 this.name = name; 63 } 64 65 public boolean isQuoted() { 66 return this.quoted; 67 } 68 69 public void setQuoted(boolean quoted) { 70 this.quoted = quoted; 71 } 72 73 public int hashCode() { 74 return getName() == null ? 0 : getName().toUpperCase().hashCode(); 75 } 76 77 public boolean equals(Object obj) { 78 if (this == obj) { 79 return true; 80 } 81 if (name == null) { 82 return false; 83 } 84 if (!(obj instanceof Identifier)) { 85 return false; 86 } 87 Identifier other = (Identifier) obj; 88 return name.equals(other.name) || (quoted == other.quoted 89 && name.equalsIgnoreCase(other.name)); 90 } 91 92 public String toString() { 93 return name; 94 } 95 96 } 97 | Popular Tags |