// This file is generated by genbeans tool. Do NOT edit it! @formatter:off package jane.bean; import java.lang.reflect.Field; import jane.core.Bean; import jane.core.BeanPool; import jane.core.MarshalException; import jane.core.OctetsStream; import jane.core.SBase; import jane.core.SContext; /** * bean的注释 */ public final class TestBean extends Bean<TestBean> { private static final long serialVersionUID = 0xbeacaa44540448ccL; public static final int BEAN_TYPE = 1; public static final String BEAN_TYPENAME = "TestBean"; public static final TestBean BEAN_STUB = new TestBean(); public static final BeanPool<TestBean> BEAN_POOL = new BeanPool<>(BEAN_STUB, 1000); public static final int TEST_CONST1 = 5; // 测试类静态常量 public static final String TEST_CONST2 = "test_const2"; private static Field FIELD_value1; private static Field FIELD_value2; private /* 1*/ int value1; // 字段的注释 private /* 2*/ long value2; static { try { Class<TestBean> c = TestBean.class; FIELD_value1 = c.getDeclaredField("value1"); FIELD_value1.setAccessible(true); FIELD_value2 = c.getDeclaredField("value2"); FIELD_value2.setAccessible(true); } catch(Exception e) { throw new Error(e); } } public TestBean() { } public TestBean(int value1, long value2) { this.value1 = value1; this.value2 = value2; } @Override public void reset() { value1 = 0; value2 = 0; } @Override public void assign(TestBean b) { if(b == this) return; if(b == null) { reset(); return; } this.value1 = b.value1; this.value2 = b.value2; } /** @return 字段的注释 */ public int getValue1() { return value1; } /** @param value1 字段的注释 */ public void setValue1(int value1) { this.value1 = value1; } public long getValue2() { return value2; } public void setValue2(long value2) { this.value2 = value2; } @Override public int type() { return BEAN_TYPE; } @Override public String typeName() { return BEAN_TYPENAME; } @Override public TestBean stub() { return BEAN_STUB; } @Override public TestBean create() { return new TestBean(); } @Override public int initSize() { return 16; } @Override public int maxSize() { return 16; } @Override public TestBean alloc() { return BEAN_POOL.alloc(); } @Override public void free() { BEAN_POOL.free(this); } @Override public OctetsStream marshal(OctetsStream s) { if(this.value1 != 0) s.marshal1((byte)0x04).marshal(this.value1); if(this.value2 != 0) s.marshal1((byte)0x08).marshal(this.value2); return s.marshal1((byte)0); } @Override public OctetsStream unmarshal(OctetsStream s) throws MarshalException { for(;;) { int i = s.unmarshalInt1() & 0xff, t = i & 3; if((i >>= 2) == 63) i += s.unmarshalInt1(); switch(i) { case 0: return s; case 1: this.value1 = s.unmarshalInt(t); break; case 2: this.value2 = s.unmarshalLong(t); break; default: s.unmarshalSkipVar(t); }} } @Override public TestBean clone() { return new TestBean(value1, value2); } @Override public int hashCode() { int h = (int)serialVersionUID; h = h * 31 + 1 + this.value1; h = h * 31 + 1 + (int)this.value2; return h; } @Override public boolean equals(Object o) { if(o == this) return true; if(!(o instanceof TestBean)) return false; TestBean b = (TestBean)o; if(this.value1 != b.value1) return false; if(this.value2 != b.value2) return false; return true; } @Override public int compareTo(TestBean b) { if(b == this) return 0; if(b == null) return 1; int c; c = this.value1 - b.value1; if(c != 0) return c; c = Long.signum(this.value2 - b.value2); if(c != 0) return c; return 0; } @Override public String toString() { StringBuilder s = new StringBuilder(16 + 16 * 2).append('{'); s.append(this.value1).append(','); s.append(this.value2).append(','); s.setLength(s.length() - 1); return s.append('}').toString(); } @Override public Safe safe(SContext.Safe<?> parent) { return new Safe(this, parent); } @Override public Safe safe() { return new Safe(this, null); } public static final class Safe extends SContext.Safe<TestBean> { private Safe(TestBean bean, SContext.Safe<?> parent) { super(bean, parent); } /** @return 字段的注释 */ public int getValue1() { return _bean.value1; } /** @param value1 字段的注释 */ public void setValue1(int value1) { if(initSContext()) _sctx.addOnRollback(new SBase.SInteger(_bean, FIELD_value1, _bean.value1)); _bean.value1 = value1; } public long getValue2() { return _bean.value2; } public void setValue2(long value2) { if(initSContext()) _sctx.addOnRollback(new SBase.SLong(_bean, FIELD_value2, _bean.value2)); _bean.value2 = value2; } } }