/** * Construct a new immutable {@code JCGLVersion} instance. * @param number The value for the {@code number} attribute * @param text The value for the {@code text} attribute * @return An immutable JCGLVersion instance */ public static JCGLVersion of(JCGLVersionNumber number, String text) { return new JCGLVersion(number, text); }
@Override public String toString() { final StringBuilder builder = new StringBuilder(16 + this.text.length()); builder.append(this.getNumber()); builder.append(" ["); builder.append(this.text); builder.append("]"); return builder.toString(); } }
/** * This instance is equal to all instances of {@code JCGLVersion} that have equal attribute values. * @return {@code true} if {@code this} is equal to {@code another} instance */ @Override public boolean equals(Object another) { if (this == another) return true; return another instanceof JCGLVersion && equalTo((JCGLVersion) another); }
@Test public void testIdentities() { final JCGLVersion v0 = JCGLVersion.make( new JCGLVersionNumber(1, 2, 3), "OpenGL ES GLSL ES 1.00"); Assert.assertEquals("OpenGL ES GLSL ES 1.00", v0.getText()); Assert.assertEquals(new JCGLVersionNumber(1, 2, 3), v0.getNumber()); Assert.assertEquals(1L, (long) v0.getVersionMajor()); Assert.assertEquals(2L, (long) v0.getVersionMinor()); Assert.assertEquals(3L, (long) v0.getVersionMicro()); }
@Test public void testToString() { final JCGLVersion v0 = JCGLVersion.make( new JCGLVersionNumber(1, 0, 0), "OpenGL ES GLSL ES 1.00"); final JCGLVersion v1 = JCGLVersion.make( new JCGLVersionNumber(1, 0, 0), "OpenGL ES GLSL ES 1.00"); final JCGLVersion v2 = JCGLVersion.make( new JCGLVersionNumber(2, 0, 0), "OpenGL ES GLSL ES 1.00"); final JCGLVersion v3 = JCGLVersion.make( new JCGLVersionNumber(1, 0, 0), "OpenGL ES GLSL ES 1.0x"); Assert.assertEquals(v0.toString(), v0.toString()); Assert.assertEquals(v0.toString(), v1.toString()); Assert.assertNotEquals(v0.toString(), v2.toString()); Assert.assertNotEquals(v0.toString(), v3.toString()); } }
@Test public void testHashCode() { final JCGLVersion v0 = JCGLVersion.make( new JCGLVersionNumber(1, 0, 0), "OpenGL ES GLSL ES 1.00"); final JCGLVersion v1 = JCGLVersion.make( new JCGLVersionNumber(1, 0, 0), "OpenGL ES GLSL ES 1.00"); final JCGLVersion v2 = JCGLVersion.make( new JCGLVersionNumber(2, 0, 0), "OpenGL ES GLSL ES 1.00"); final JCGLVersion v3 = JCGLVersion.make( new JCGLVersionNumber(1, 0, 0), "OpenGL ES GLSL ES 1.0x"); Assert.assertEquals((long) v0.hashCode(), (long) (v0.hashCode())); Assert.assertEquals((long) v0.hashCode(), (long) (v1.hashCode())); Assert.assertNotEquals((long) v0.hashCode(), (long) (v2.hashCode())); Assert.assertNotEquals((long) v0.hashCode(), (long) (v3.hashCode())); }
@Test public void testEquals() { final JCGLVersion v0 = JCGLVersion.make( new JCGLVersionNumber(1, 0, 0), "OpenGL ES GLSL ES 1.00"); final JCGLVersion v1 = JCGLVersion.make( new JCGLVersionNumber(1, 0, 0), "OpenGL ES GLSL ES 1.00"); final JCGLVersion v2 = JCGLVersion.make( new JCGLVersionNumber(2, 0, 0), "OpenGL ES GLSL ES 1.00"); final JCGLVersion v3 = JCGLVersion.make( new JCGLVersionNumber(1, 0, 0), "OpenGL ES GLSL ES 1.0x"); Assert.assertEquals(v0, v0); Assert.assertNotEquals(v0, null); Assert.assertNotEquals(v0, (Integer.valueOf(23))); Assert.assertEquals(v0, v1); Assert.assertNotEquals(v0, v2); Assert.assertNotEquals(v0, v3); }
/** * Builds a new {@link JCGLVersion JCGLVersion}. * @return An immutable instance of JCGLVersion * @throws java.lang.IllegalStateException if any required attributes are missing */ public JCGLVersion build() { if (initBits != 0) { throw new IllegalStateException(formatRequiredAttributesMessage()); } return new JCGLVersion(this); }
/** * Construct a new version. * * @param number The number. * @param text The version text from which the original number was * produced. * * @return A new version. */ public static JCGLVersion make( final JCGLVersionNumber number, final String text) { NullCheck.notNull(number, "Number"); NullCheck.notNull(text, "Text"); return new JCGLVersion(number, text); }