openamf/src/java/org/openamf/util OpenAMFUtils.java,NONE,1.1
| Newsgroups | gmane.comp.java.openamf.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/openamf/openamf/src/java/org/openamf/util
In directory sc8-pr-cvs1:/tmp/cvs-serv3226/src/java/org/openamf/util
Added Files:
OpenAMFUtils.java
Log Message:
moved some code to a new OpenAMFUtils class
--- NEW FILE: OpenAMFUtils.java ---
package org.openamf.util;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.openamf.ASObject;
import com.carbonfive.flash.decoder.ActionScriptDecoder;
import com.carbonfive.flash.decoder.DecoderFactory;
public class OpenAMFUtils {
private static final Log log = LogFactory.getLog(OpenAMFUtils.class);
public static Object decodeParameter(Object parameter, Class parameterType) {
if (parameter == null) {
try {
return parameterType.newInstance();
} catch (Exception e) {
log.error(e);
}
}
if (parameterType.equals(java.sql.Date.class)
&& parameter instanceof java.util.Date) {
java.util.Date date = (java.util.Date) parameter;
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
return sqlDate;
}
boolean setType = false;
DecoderFactory decoderFactory = DecoderFactory.getInstance();
if (parameter instanceof ASObject
&& ((ASObject) parameter).getType() == null) {
setType = true;
((ASObject) parameter).setType(parameterType.getName());
}
ActionScriptDecoder decoder =
decoderFactory.getDecoder(parameter, parameterType);
Object decodedObject = decoder.decodeObject(parameter, parameterType);
if (!setType
&& decodedObject == null
&& parameter instanceof ASObject) {
((ASObject) parameter).setType(parameterType.getName());
decodedObject = decoder.decodeObject(parameter, parameterType);
}
return decodedObject;
}
public static boolean typesMatch(Class parameterType, Object parameter) {
//log.debug("expected class: " + parameterType.getName());
//log.debug("parameter class: " + parameter.getClass().getName());
boolean typesMatch = parameterType.isInstance(parameter);
if (!typesMatch) {
if (parameterType.equals(Boolean.TYPE)
&& parameter instanceof Boolean) {
typesMatch = true;
} else if (
parameterType.equals(Byte.TYPE) && parameter instanceof Byte) {
typesMatch = true;
} else if (
parameterType.equals(Short.TYPE)
&& parameter instanceof Short) {
typesMatch = true;
} else if (
parameterType.equals(Integer.TYPE)
&& parameter instanceof Integer) {
typesMatch = true;
} else if (
parameterType.equals(Long.TYPE) && parameter instanceof Long) {
typesMatch = true;
} else if (
parameterType.equals(Float.TYPE)
&& parameter instanceof Float) {
typesMatch = true;
} else if (
parameterType.equals(Double.TYPE)
&& parameter instanceof Double) {
typesMatch = true;
}
}
return typesMatch;
}
}
-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100006ave/direct;at.asp_061203_01/01