Constraint { public Permission getPermission() { return permission; } private  Constraint(AddressTemplate template, String name, Target target, Permission permission); static Constraint executable(AddressTemplate template, String operation); static Constraint writable(AddressTemplate template, String attribute); @SuppressWarnings("DuplicateStringLiteralInspection") static Constraint parse(String input); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString(); String data(); AddressTemplate getTemplate(); Target getTarget(); String getName(); Permission getPermission();  }
@Test public void permission() { assertEquals(Permission.EXECUTABLE, ex.getPermission()); assertEquals(Permission.WRITABLE, wr.getPermission()); }