org.jdesktop.el.impl.ValueExpressionLiteral Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of swixml Show documentation
Show all versions of swixml Show documentation
GUI generating engine for Java applications
/*
* Copyright (C) 2007 Sun Microsystems, Inc. All rights reserved. Use is
* subject to license terms.
*/
package org.jdesktop.el.impl;
import java.io.Externalizable;
import java.io.IOException;
import org.jdesktop.el.ELContext;
import org.jdesktop.el.PropertyNotWritableException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import org.jdesktop.el.ValueExpression;
import org.jdesktop.el.impl.lang.ELSupport;
import org.jdesktop.el.impl.util.MessageFactory;
import org.jdesktop.el.impl.util.ReflectionUtil;
public final class ValueExpressionLiteral extends ValueExpression implements
Externalizable {
private static final long serialVersionUID = 1L;
private Object value;
private Class expectedType;
public ValueExpressionLiteral() {
super();
}
public ValueExpressionLiteral(Object value, Class expectedType) {
this.value = value;
this.expectedType = expectedType;
}
public Object getValue(ELContext context) {
if (this.expectedType != null) {
return ELSupport.coerceToType(this.value, this.expectedType);
}
return this.value;
}
public void setValue(ELContext context, Object value) {
throw new PropertyNotWritableException(MessageFactory.get(
"error.value.literal.write", this.value));
}
public boolean isReadOnly(ELContext context) {
return true;
}
public Class getType(ELContext context) {
return (this.value != null) ? this.value.getClass() : null;
}
public Class getExpectedType() {
return this.expectedType;
}
public String getExpressionString() {
return (this.value != null) ? this.value.toString() : null;
}
public boolean equals(Object obj) {
return (obj instanceof ValueExpressionLiteral && this
.equals((ValueExpressionLiteral) obj));
}
public boolean equals(ValueExpressionLiteral ve) {
return (ve != null && (this.value != null && ve.value != null && (this.value == ve.value || this.value
.equals(ve.value))));
}
public int hashCode() {
return (this.value != null) ? this.value.hashCode() : 0;
}
public boolean isLiteralText() {
return true;
}
public void writeExternal(ObjectOutput out) throws IOException {
out.writeObject(this.value);
out.writeUTF((this.expectedType != null) ? this.expectedType.getName()
: "");
}
public void readExternal(ObjectInput in) throws IOException,
ClassNotFoundException {
this.value = in.readObject();
String type = in.readUTF();
if (!"".equals(type)) {
this.expectedType = ReflectionUtil.forName(type);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy