1 10 package org.mmbase.storage.util; 11 12 import java.text.MessageFormat ; 13 14 33 public class TypeMapping implements Comparable { 34 35 39 public String type; 40 43 public String name; 44 48 public int minSize; 49 53 public int maxSize; 54 55 public TypeMapping() { 56 } 57 58 65 public void setFixedSize(int size) { 66 minSize = size; 67 maxSize = size; 68 } 69 70 public int compareTo(Object o) { 72 TypeMapping t = (TypeMapping) o; 73 if (!name.equals(t.name)) { 74 return name.compareTo(t.name); 75 } else if (minSize != t.minSize) { 76 return t.minSize - minSize; 77 } else if (maxSize == -1) { 78 if (t.maxSize == -1) { 79 return 0; 80 } else { 81 return -1; 82 } 83 } else { 84 return t.maxSize - maxSize; 85 } 86 } 87 88 public boolean equals(Object o) { 90 if (o == null) return false; 91 if (o instanceof TypeMapping) { 92 TypeMapping tm = (TypeMapping) o; 93 return (name == null ? tm.name == null : name.equals(tm.name)) && 97 ( 98 ( (minSize >= tm.minSize || (tm.minSize <= 0)) && (maxSize <= tm.maxSize || (tm.maxSize <= 0)) ) || 100 ( (tm.minSize >= minSize || (minSize <= 0)) && (tm.maxSize <= maxSize || (maxSize <= 0)) ) ) 102 ; 103 } else { 104 return false; 105 } 106 } 107 public int hashCode() { 109 return name == null ? 0 : name.hashCode(); 111 } 112 113 116 public String getType(int size) { 117 return MessageFormat.format(type,new Object []{ new Integer (size) }); 118 } 119 120 public String toString() { 122 return name+" ("+minSize+","+maxSize+")+>"+type; 123 } 124 125 } 126 | Popular Tags |