If you think the Android project sony-camera-remote-java listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
package com.praetoriandroid.cameraremote.rpc;
//www.java2s.comimport java.util.HashMap;
import java.util.List;
import java.util.Map;
@SuppressWarnings("UnusedDeclaration")
publicclass MethodTypesEntity {
private String name;
private List<AbstractClass> parameterTypes;
private List<AbstractClass> responseTypes;
private String version;
public MethodTypesEntity(String name, List<AbstractClass> parameterTypes, List<AbstractClass> responseTypes, String version) {
this.name = name;
this.parameterTypes = parameterTypes;
this.responseTypes = responseTypes;
this.version = version;
}
public String getName() {
return name;
}
public List<AbstractClass> getParameterTypes() {
return parameterTypes;
}
public List<AbstractClass> getResponseTypes() {
return responseTypes;
}
public String getVersion() {
return version;
}
@Override
public String toString() {
return'{' + name + '(' + version + "): " + parameterTypes + ", " + responseTypes + '}';
}
publicinterface AbstractClass {
/**
* @return <code>true</code> if instance represents one of <code>boolean</code>, <code>int</code>,
* <code>double</code>, {@link String} or array of them,
* that could be obtained with {@link #getSimpleClass()};
* <br/>
* or <code>false</code> if instance represents a compound class description,
* that could be obtained with {@link #getClassDescription()}.
*/publicboolean isSimpleClass();
/**
* @return <code>true</code> if instance represents an array of compound objects.
* In this case {@link #isSimpleClass()} returns <code>false</code>.
*/publicboolean isClassDescriptionArray();
/**
* @return Class that represents one of simple classes (see {@link #isSimpleClass()}).
* @throws IllegalStateException if {@link #isSimpleClass()} returns <code>false</code>.
*/public Class<?> getSimpleClass() throws IllegalStateException;
/**
* @return Class
* @throws IllegalStateException if {@link #isSimpleClass()} returns <code>true</code>.
*/public Map<String, Class<?>> getClassDescription() throws IllegalStateException;
}
publicstaticclass SimpleClass implements AbstractClass {
private Class<?> clazz;
public SimpleClass(Class<?> clazz) {
this.clazz = clazz;
}
@Override
publicboolean isSimpleClass() {
return true;
}
@Override
publicboolean isClassDescriptionArray() {
return false;
}
@Override
public Class<?> getSimpleClass() throws IllegalStateException {
return clazz;
}
@Override
public Map<String, Class<?>> getClassDescription() throws IllegalStateException {
thrownew IllegalStateException();
}
@Override
public String toString() {
return clazz.getSimpleName();
}
}
publicstaticclass ClassDescription extends HashMap<String, Class<?>> implements AbstractClass {
@Override
publicboolean isSimpleClass() {
return false;
}
@Override
publicboolean isClassDescriptionArray() {
return false;
}
@Override
public Class<?> getSimpleClass() throws IllegalStateException {
thrownew IllegalStateException();
}
@Override
public Map<String, Class<?>> getClassDescription() throws IllegalStateException {
returnthis;
}
}
publicstaticclass ClassDescriptionArray extends ClassDescription {
@Override
publicboolean isClassDescriptionArray() {
return true;
}
@Override
public String toString() {
return'[' + super.toString() + ']';
}
}
}