package flyweight;
public class HtmlTag {
/**
* Конструктор - protected, чтобы запретить
* прямое инстанцирование данного экземпляра
* (не делая при этом класс абстрактным)
* @param name
*/
protected HtmlTag
(String name
) { this.name = name;
}
/**
* Выводим html-представление данного тега
* @param content - внутренний содержимое(текст) тега
* @param context - контекст со всей необходимой для
* отображения информацией.
*/
String res =
"<" + getName
() +
" style=\"" + GetStyle
(context
) +
"\">";
res += content;
res += "</" + getName() + ">";
return res;
}
return name;
}
public void setName
(String name
) { this.name = name;
}
public CssStyle GetStyle(TagContext context) {
return context.getStyle();
}
public void SetStyle(CssStyle newStyle, TagContext context) {
context.setStyle(newStyle);
}
// Методы hashCode/equals здесь очень актуальны,
// поскольку объекты данного типа используются в
// в коллекциях
public int hashCode() {
final int PRIME = 31;
int result = 1;
result = PRIME * result + ((name == null) ? 0 : name.hashCode());
return result;
}
public boolean equals
(Object obj
) { if (this == obj)
return true;
if (!(obj instanceof HtmlTag))
return false;
final HtmlTag other = (HtmlTag) obj;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
}