PropertiesWrapper implements Properties { private PropertiesWrapper(@NotNull Object object) { this.object = object; } private  PropertiesWrapper(@NotNull Object object); protected  PropertiesWrapper(); static Properties wrapObject(@NotNull Object object); static String[] getAllPropertyNames(Class clazz); @NotNull @Override String[] getAllPropertyNames(); @Nullable @Override Object getProperty(@NotNull String name); @Override void setProperty(@NotNull String name, @NotNull String value); @Override void addProperty(@NotNull String name, @NotNull String value); @Override void removeProperty(@NotNull String name, @NotNull String value); @Override void clearProperty(@NotNull String name, @Nullable String value); @Nullable @Override Object getPropertyUnchecked(@NotNull String name); @Override boolean setPropertyUnchecked(@NotNull String name, @NotNull String value); @Override boolean addPropertyUnchecked(@NotNull String name, @NotNull String value); @Override boolean removePropertyUnchecked(@NotNull String name, @NotNull String value); @Override boolean clearPropertyUnchecked(@NotNull String name, @Nullable String value);  }
@Test public void testPropertiesWrapper() throws Exception { Custom custom = new Custom("custom"); Properties properties = PropertiesWrapper.wrapObject(custom); assertEquals(custom.name, properties.getProperty("name")); }