package org.springframework.roo.addon.gwt.request;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.Validate;
import org.springframework.roo.classpath.PhysicalTypeIdentifierNamingUtils;
import org.springframework.roo.metadata.AbstractMetadataItem;
import org.springframework.roo.metadata.MetadataIdentificationUtils;
import org.springframework.roo.model.JavaType;
import org.springframework.roo.project.LogicalPath;
public class GwtRequestMetadata extends AbstractMetadataItem {
private static final String PROVIDES_TYPE_STRING = GwtRequestMetadata.class
.getName();
private static final String PROVIDES_TYPE = MetadataIdentificationUtils
.create(PROVIDES_TYPE_STRING);
public static String createIdentifier(final JavaType javaType,
final LogicalPath path) {
return PhysicalTypeIdentifierNamingUtils.createIdentifier(
PROVIDES_TYPE_STRING, javaType, path);
}
public static JavaType getJavaType(final String metadataIdentificationString) {
return PhysicalTypeIdentifierNamingUtils.getJavaType(
PROVIDES_TYPE_STRING, metadataIdentificationString);
}
public static String getMetadataIdentifierType() {
return PROVIDES_TYPE;
}
public static LogicalPath getPath(final String metadataIdentificationString) {
return PhysicalTypeIdentifierNamingUtils.getPath(PROVIDES_TYPE_STRING,
metadataIdentificationString);
}
private final String requestTypeContents;
/**
* Constructor
*
* @param id the id of this
* {@link org.springframework.roo.metadata.MetadataItem}
* @param requestTypeContents the Java source code for the entity-specific
* Request interface (required)
*/
public GwtRequestMetadata(final String id, final String requestTypeContents) {
super(id);
Validate.notBlank(requestTypeContents, "Invalid contents '"
+ requestTypeContents + "'");
this.requestTypeContents = requestTypeContents;
}
@Override
public boolean equals(final Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof GwtRequestMetadata)) {
return false;
}
final GwtRequestMetadata other = (GwtRequestMetadata) obj;
return StringUtils.equals(requestTypeContents,
other.requestTypeContents);
}
@Override
public int hashCode() {
return requestTypeContents.hashCode();
}
}