public Builder clear() {
        super.clear();
        tag_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = org.box2d.proto.Box2D.PbJointType.DISTANCE;
        bitField0_ = (bitField0_ & ~0x00000002);
        bodyA_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        bodyB_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        collideConnected_ = false;
        bitField0_ = (bitField0_ & ~0x00000010);
        if (localAnchorABuilder_ == null) {
          localAnchorA_ = org.box2d.proto.Box2D.PbVec2.getDefaultInstance();
        } else {
          localAnchorABuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        if (localAnchorBBuilder_ == null) {
          localAnchorB_ = org.box2d.proto.Box2D.PbVec2.getDefaultInstance();
        } else {
          localAnchorBBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        refAngle_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000080);
        enableLimit_ = false;
        bitField0_ = (bitField0_ & ~0x00000100);
        lowerLimit_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000200);
        upperLimit_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000400);
        enableMotor_ = false;
        bitField0_ = (bitField0_ & ~0x00000800);
        motorSpeed_ = 0F;
        bitField0_ = (bitField0_ & ~0x00001000);
        maxMotorTorque_ = 0F;
        bitField0_ = (bitField0_ & ~0x00002000);
        if (localAxisABuilder_ == null) {
          localAxisA_ = org.box2d.proto.Box2D.PbVec2.getDefaultInstance();
        } else {
          localAxisABuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00004000);
        maxMotorForce_ = 0F;
        bitField0_ = (bitField0_ & ~0x00008000);
        length_ = 0F;
        bitField0_ = (bitField0_ & ~0x00010000);
        frequency_ = 0F;
        bitField0_ = (bitField0_ & ~0x00020000);
        dampingRatio_ = 0F;
        bitField0_ = (bitField0_ & ~0x00040000);
        if (groundAnchorABuilder_ == null) {
          groundAnchorA_ = org.box2d.proto.Box2D.PbVec2.getDefaultInstance();
        } else {
          groundAnchorABuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00080000);
        if (groundAnchorBBuilder_ == null) {
          groundAnchorB_ = org.box2d.proto.Box2D.PbVec2.getDefaultInstance();
        } else {
          groundAnchorBBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00100000);
        lengthA_ = 0F;
        bitField0_ = (bitField0_ & ~0x00200000);
        lengthB_ = 0F;
        bitField0_ = (bitField0_ & ~0x00400000);
        ratio_ = 0F;
        bitField0_ = (bitField0_ & ~0x00800000);
        maxLengthA_ = 0F;
        bitField0_ = (bitField0_ & ~0x01000000);
        maxLengthB_ = 0F;
        bitField0_ = (bitField0_ & ~0x02000000);
        if (targetBuilder_ == null) {
          target_ = org.box2d.proto.Box2D.PbVec2.getDefaultInstance();
        } else {
          targetBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x04000000);
        maxForce_ = 0F;
        bitField0_ = (bitField0_ & ~0x08000000);
        joint1_ = 0;
        bitField0_ = (bitField0_ & ~0x10000000);
        joint2_ = 0;
        bitField0_ = (bitField0_ & ~0x20000000);
        springFrequency_ = 0F;
        bitField0_ = (bitField0_ & ~0x40000000);
        springDampingRatio_ = 0F;
        bitField0_ = (bitField0_ & ~0x80000000);
        maxTorque_ = 0F;
        bitField1_ = (bitField1_ & ~0x00000001);
        maxLength_ = 0F;
        bitField1_ = (bitField1_ & ~0x00000002);
        bodies_ = java.util.Collections.emptyList();;
        bitField1_ = (bitField1_ & ~0x00000004);
        joints_ = java.util.Collections.emptyList();;
        bitField1_ = (bitField1_ & ~0x00000008);
        targetVolume_ = 0F;
        bitField1_ = (bitField1_ & ~0x00000010);
        return this;
      }