/*
* Copyright 2011 Red Hat, Inc. and/or its affiliates.
*
* 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.drools.compiler.factmodel.traits;
import org.drools.core.factmodel.traits.TraitProxy;
import org.drools.core.factmodel.traits.TraitTypeMap;
import org.drools.core.factmodel.traits.TraitableBean;
import org.drools.core.spi.InternalReadAccessor;
import org.drools.core.spi.WriteAccessor;
import org.drools.core.util.ExternalizableLinkedHashMap;
import java.util.HashMap;
import java.util.Map;
public class StudentProxy2 extends TraitProxy implements IStudent {
public final Imp2 object;
public final Map<String, Object> map;
public static InternalReadAccessor name_reader;
public static WriteAccessor name_writer;
public static InternalReadAccessor bit_reader;
public static WriteAccessor bit_writer;
private static final String traitType = IStudent.class.getName();
public StudentProxy2(Imp2 obj, Map<String, Object> m) {
if ( m == null ) {
m = new HashMap<String,Object>();
}
this.object = obj;
this.map = m;
fields = new StudentProxyWrapper2( obj, m );
if ( obj._getDynamicProperties() == null ) {
obj._setDynamicProperties( m );
}
if ( obj._getTraitMap() == null ) {
obj._setTraitMap( new TraitTypeMap( new ExternalizableLinkedHashMap() ) );
}
}
public Imp2 getCore() {
return object;
}
public boolean isTop() {
return false;
}
public String _getTraitName() {
return traitType;
}
public TraitableBean getObject() {
return object;
}
public boolean equals(Object o) {
if (this == o) return true;
if (o == null) return false;
if (! this.getClass().equals(o.getClass())) {
return false;
}
TraitProxy that = (TraitProxy) o;
return getFields().equals( that.getFields() );
}
public int hashCode() {
int result = object.hashCode();
result = 31 * result + map.hashCode();
result = "Student".hashCode() * result;
return result;
}
public String toString() {
return "(@Student) : " + getFields().entrySet().toString();
}
public double getD() {
return bit_reader.getDoubleValue( object );
}
public void setD(double d) {
bit_writer.setDoubleValue( object, d );
}
// get/set impl depends on bitmask
public String getSchool() {
return object.getSchool();
}
public void setSchool(String school) {
object.setSchool( school );
}
public String getName() {
// return object.getName();
return (String) name_reader.getValue(object);
}
public void setName(String name) {
// object.setName( name );
name_writer.setValue(object, name);
}
public int getAge() {
Object tmp = map.get( "age" );
return (Integer) (
tmp != null ?
tmp : 0 );
}
public void setAge(int age) {
map.put( "age", Integer.valueOf( age ) );
}
}