Ring implements Cloneable, Savable, Externalizable, ReadOnlyRing, Poolable { @Override public Ring clone() { return new Ring(this); } Ring();  Ring(final ReadOnlyRing source);  Ring(final ReadOnlyVector3 center, final ReadOnlyVector3 up, final double innerRadius,
    final double outerRadius); Ring set(final ReadOnlyRing source); @Override ReadOnlyVector3 getCenter(); void setCenter(final ReadOnlyVector3 center); @Override ReadOnlyVector3 getUp(); void setUp(final ReadOnlyVector3 up); @Override double getInnerRadius(); void setInnerRadius(final double innerRadius); @Override double getOuterRadius(); void setOuterRadius(final double outerRadius); @Override Vector3 random(final Vector3 store); static boolean isValid(final ReadOnlyRing ring); @Override String toString(); @Override int hashCode(); @Override boolean equals(final Object o); @Override Ring clone(); @Override Class<? extends Ring> getClassTag(); @Override void write(final OutputCapsule capsule); @Override void read(final InputCapsule capsule); @Override void readExternal(final ObjectInput in); @Override void writeExternal(final ObjectOutput out); final static Ring fetchTempInstance(); final static void releaseTempInstance(final Ring ring);  }
@Test public void testClone() { final Ring ring1 = new Ring(); final Ring ring2 = ring1.clone(); assertEquals(ring1, ring2); assertNotSame(ring1, ring2); }