Skip to content

Commit

Permalink
Add Constant#defined to allow #ifdef style logic.
Browse files Browse the repository at this point in the history
  • Loading branch information
headius committed May 24, 2014
1 parent 5251410 commit de6f664
Show file tree
Hide file tree
Showing 162 changed files with 218 additions and 1 deletion.
3 changes: 3 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ def gen_platform_constants(name, pkg, file_name, options = {})
end
f.puts "public final int intValue() { return (int) value; }"
f.puts "public final long longValue() { return value; }"
f.puts "public final boolean defined() { return true; }"
f.puts "}"
end
end
Expand Down Expand Up @@ -101,6 +102,7 @@ def gen_fake_constants(name, pkg, file_name, options = {})
f.puts "public static final long MAX_VALUE = #{max_value}L;"
f.puts "public final int intValue() { return (int) value; }"
f.puts "public final long longValue() { return value; }"
f.puts "public final boolean defined() { return true; }"
f.puts "}"
end
end
Expand Down Expand Up @@ -129,6 +131,7 @@ def gen_xplatform_constants(name, pkg, file_name, options = {})
f.puts "public final int intValue() { return (int) resolver.longValue(this); }"
f.puts "public final long longValue() { return resolver.longValue(this); }"
f.puts "public final String description() { return resolver.description(this); }"
f.puts "public final boolean defined() { return resolver.defined(this); }"
f.puts "public final String toString() { return description(); }"
f.puts "public static #{name} valueOf(long value) { "
f.puts " return resolver.valueOf(value);"
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/com/kenai/constantine/ConstantSet.java
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,10 @@ public String name() {
return constant.name();
}

public boolean defined() {
return true;
}

public int hashCode() {
return constant.hashCode();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ public enum AddressFamily implements com.kenai.constantine.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return true; }
public final String toString() { return description(); }
public final static AddressFamily valueOf(int value) {
return resolver.valueOf(value);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,11 @@ public long longValue() {
public String name() {
return name;
}

public boolean defined() {
return false;
}

@Override
public String toString() {
return name;
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/kenai/constantine/platform/Errno.java
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ public enum Errno implements com.kenai.constantine.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return true; }
public final String toString() { return description(); }
public final static Errno valueOf(int value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/kenai/constantine/platform/Fcntl.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ public enum Fcntl implements com.kenai.constantine.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return true; }
public final String toString() { return description(); }
public final static Fcntl valueOf(int value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/kenai/constantine/platform/INAddr.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ public enum INAddr implements com.kenai.constantine.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return true; }
public final String toString() { return description(); }
public final static INAddr valueOf(int value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/kenai/constantine/platform/IPProto.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ public enum IPProto implements com.kenai.constantine.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return true; }
public final String toString() { return description(); }
public final static IPProto valueOf(int value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/kenai/constantine/platform/NameInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ public enum NameInfo implements com.kenai.constantine.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return true; }
public final String toString() { return description(); }
public final static NameInfo valueOf(int value) {
return resolver.valueOf(value);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ public enum OpenFlags implements com.kenai.constantine.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return true; }
public final String toString() { return description(); }
public final static OpenFlags valueOf(int value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/kenai/constantine/platform/PRIO.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ public enum PRIO implements com.kenai.constantine.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return true; }
public final String toString() { return description(); }
public final static PRIO valueOf(int value) {
return resolver.valueOf(value);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ public enum ProtocolFamily implements com.kenai.constantine.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return true; }
public final String toString() { return description(); }
public final static ProtocolFamily valueOf(int value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/kenai/constantine/platform/RLIM.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ public enum RLIM implements com.kenai.constantine.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return true; }
public final String toString() { return description(); }
public final static RLIM valueOf(int value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/kenai/constantine/platform/RLIMIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ public enum RLIMIT implements com.kenai.constantine.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return true; }
public final String toString() { return description(); }
public final static RLIMIT valueOf(int value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/kenai/constantine/platform/Shutdown.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ public enum Shutdown implements com.kenai.constantine.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return true; }
public final String toString() { return description(); }
public final static Shutdown valueOf(int value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/kenai/constantine/platform/Signal.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ public enum Signal implements com.kenai.constantine.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return true; }
public final String toString() { return description(); }
public final static Signal valueOf(int value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/kenai/constantine/platform/Sock.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ public enum Sock implements com.kenai.constantine.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return true; }
public final String toString() { return description(); }
public final static Sock valueOf(int value) {
return resolver.valueOf(value);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ public enum SocketLevel implements com.kenai.constantine.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return true; }
public final String toString() { return description(); }
public final static SocketLevel valueOf(int value) {
return resolver.valueOf(value);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ public enum SocketOption implements com.kenai.constantine.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return true; }
public final String toString() { return description(); }
public final static SocketOption valueOf(int value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/kenai/constantine/platform/Sysconf.java
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@ public enum Sysconf implements com.kenai.constantine.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return true; }
public final String toString() { return description(); }
public final static Sysconf valueOf(int value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/kenai/constantine/platform/TCP.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ public enum TCP implements com.kenai.constantine.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return true; }
public final String toString() { return description(); }
public final static TCP valueOf(int value) {
return resolver.valueOf(value);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ public enum WaitFlags implements com.kenai.constantine.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return true; }
public final String toString() { return description(); }
public final static WaitFlags valueOf(int value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/jnr/constants/Constant.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,5 @@ public interface Constant {
int intValue();
long longValue();
String name();
boolean defined();
}
1 change: 1 addition & 0 deletions src/main/java/jnr/constants/platform/AddressFamily.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ public enum AddressFamily implements jnr.constants.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return resolver.defined(this); }
public final String toString() { return description(); }
public static AddressFamily valueOf(long value) {
return resolver.valueOf(value);
Expand Down
9 changes: 9 additions & 0 deletions src/main/java/jnr/constants/platform/ConstantResolver.java
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,10 @@ public final String name() {
return name;
}

public final boolean defined() {
return false;
}

@Override
public final String toString() {
return name;
Expand Down Expand Up @@ -176,6 +180,11 @@ final String description(E e) {
}


final boolean defined(E e) {
return getConstant(e).defined();
}


@SuppressWarnings("unchecked")
final E valueOf(long value) {
E e;
Expand Down
1 change: 1 addition & 0 deletions src/main/java/jnr/constants/platform/Errno.java
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ public enum Errno implements jnr.constants.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return resolver.defined(this); }
public final String toString() { return description(); }
public static Errno valueOf(long value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/jnr/constants/platform/Fcntl.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ public enum Fcntl implements jnr.constants.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return resolver.defined(this); }
public final String toString() { return description(); }
public static Fcntl valueOf(long value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/jnr/constants/platform/INAddr.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ public enum INAddr implements jnr.constants.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return resolver.defined(this); }
public final String toString() { return description(); }
public static INAddr valueOf(long value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/jnr/constants/platform/IPProto.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ public enum IPProto implements jnr.constants.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return resolver.defined(this); }
public final String toString() { return description(); }
public static IPProto valueOf(long value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/jnr/constants/platform/NameInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ public enum NameInfo implements jnr.constants.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return resolver.defined(this); }
public final String toString() { return description(); }
public static NameInfo valueOf(long value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/jnr/constants/platform/OpenFlags.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ public enum OpenFlags implements jnr.constants.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return resolver.defined(this); }
public final String toString() { return description(); }
public static OpenFlags valueOf(long value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/jnr/constants/platform/PRIO.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ public enum PRIO implements jnr.constants.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return resolver.defined(this); }
public final String toString() { return description(); }
public static PRIO valueOf(long value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/jnr/constants/platform/ProtocolFamily.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ public enum ProtocolFamily implements jnr.constants.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return resolver.defined(this); }
public final String toString() { return description(); }
public static ProtocolFamily valueOf(long value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/jnr/constants/platform/RLIM.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ public enum RLIM implements jnr.constants.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return resolver.defined(this); }
public final String toString() { return description(); }
public static RLIM valueOf(long value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/jnr/constants/platform/RLIMIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ public enum RLIMIT implements jnr.constants.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return resolver.defined(this); }
public final String toString() { return description(); }
public static RLIMIT valueOf(long value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/jnr/constants/platform/Shutdown.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ public enum Shutdown implements jnr.constants.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return resolver.defined(this); }
public final String toString() { return description(); }
public static Shutdown valueOf(long value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/jnr/constants/platform/Signal.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ public enum Signal implements jnr.constants.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return resolver.defined(this); }
public final String toString() { return description(); }
public static Signal valueOf(long value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/jnr/constants/platform/Sock.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ public enum Sock implements jnr.constants.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return resolver.defined(this); }
public final String toString() { return description(); }
public static Sock valueOf(long value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/jnr/constants/platform/SocketLevel.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ public enum SocketLevel implements jnr.constants.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return resolver.defined(this); }
public final String toString() { return description(); }
public static SocketLevel valueOf(long value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/jnr/constants/platform/SocketOption.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ public enum SocketOption implements jnr.constants.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return resolver.defined(this); }
public final String toString() { return description(); }
public static SocketOption valueOf(long value) {
return resolver.valueOf(value);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/jnr/constants/platform/Sysconf.java
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@ public enum Sysconf implements jnr.constants.Constant {
public final int intValue() { return (int) resolver.longValue(this); }
public final long longValue() { return resolver.longValue(this); }
public final String description() { return resolver.description(this); }
public final boolean defined() { return resolver.defined(this); }
public final String toString() { return description(); }
public static Sysconf valueOf(long value) {
return resolver.valueOf(value);
Expand Down
Loading

0 comments on commit de6f664

Please sign in to comment.