/*
* Copyright 2011 JBoss Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jbpm.formbuilder.server.xml;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import org.jbpm.formapi.shared.form.FormEncodingException;
import org.jbpm.formapi.shared.form.FormEncodingFactory;
import org.jbpm.formapi.shared.menu.FormEffectDescription;
import org.jbpm.formapi.shared.menu.MenuItemDescription;
public class MenuItemDTO {
private String _className;
private String _optionName;
private String _itemJson;
private List<FormEffectDTO> _effect = new ArrayList<FormEffectDTO>();
private List<String> _allowedEvent = new ArrayList<String>();
public MenuItemDTO() {
// jaxb needs a default constructor
}
public MenuItemDTO(MenuItemDescription item) {
this._className = item.getClassName();
this._optionName = item.getName();
for (FormEffectDescription eff : item.getEffects()) {
_effect.add(new FormEffectDTO(eff));
}
if (item.getAllowedEvents() != null) {
_allowedEvent.addAll(item.getAllowedEvents());
}
try {
String json = FormEncodingFactory.getEncoder().encode(item.getItemRepresentation());
this._itemJson = json;
} catch (FormEncodingException e) {
}
}
@XmlElement
public String getItemJson() {
return _itemJson;
}
public void setItemJson(String itemJson) {
this._itemJson = itemJson;
}
@XmlAttribute
public String getClassName() {
return _className;
}
public void setClassName(String className) {
this._className = className;
}
@XmlElement
public List<FormEffectDTO> getEffect() {
return _effect;
}
public void setEffect(List<FormEffectDTO> effect) {
this._effect = effect;
}
@XmlElement
public List<String> getAllowedEvent() {
return _allowedEvent;
}
public void setAllowedEvent(List<String> allowedEvent) {
this._allowedEvent = allowedEvent;
}
@XmlAttribute
public String getOptionName() {
return _optionName;
}
public void setOptionName(String optionName) {
this._optionName = optionName;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((_allowedEvent == null) ? 0 : _allowedEvent.hashCode());
result = prime * result
+ ((_className == null) ? 0 : _className.hashCode());
result = prime * result + ((_effect == null) ? 0 : _effect.hashCode());
result = prime * result
+ ((_itemJson == null) ? 0 : _itemJson.hashCode());
result = prime * result
+ ((_optionName == null) ? 0 : _optionName.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
MenuItemDTO other = (MenuItemDTO) obj;
if (_allowedEvent == null) {
if (other._allowedEvent != null)
return false;
} else if (!_allowedEvent.equals(other._allowedEvent))
return false;
if (_className == null) {
if (other._className != null)
return false;
} else if (!_className.equals(other._className))
return false;
if (_effect == null) {
if (other._effect != null)
return false;
} else if (!_effect.equals(other._effect))
return false;
if (_itemJson == null) {
if (other._itemJson != null)
return false;
} else if (!_itemJson.equals(other._itemJson))
return false;
if (_optionName == null) {
if (other._optionName != null)
return false;
} else if (!_optionName.equals(other._optionName))
return false;
return true;
}
}