Pankraz76 commented on code in PR #2436:
URL: https://github.com/apache/maven/pull/2436#discussion_r2128796874
##########
src/mdo/java/WrapperProperties.java:
##########
@@ -101,102 +88,89 @@ public void list(PrintWriter out) {
@Override
public int size() {
- ensureInitialized();
- return orderedProps.size();
+ return getter.get().size();
}
@Override
public boolean isEmpty() {
- ensureInitialized();
- return orderedProps.isEmpty();
+ return getter.get().isEmpty();
}
@Override
public Enumeration<Object> keys() {
- ensureInitialized();
- return orderedProps.keys();
+ return Collections.enumeration((Set) getter.get().keySet());
}
@Override
public Enumeration<Object> elements() {
- ensureInitialized();
- return orderedProps.elements();
+ return Collections.enumeration((Collection) getter.get().values());
}
@Override
public boolean contains(Object value) {
- ensureInitialized();
- return orderedProps.contains(value);
+ return getter.get().containsKey(value != null ? value.toString() :
null);
}
@Override
public boolean containsValue(Object value) {
- ensureInitialized();
- return orderedProps.containsValue(value);
+ return getter.get().containsValue(value);
}
@Override
public boolean containsKey(Object key) {
- ensureInitialized();
- return orderedProps.containsKey(key);
+ return getter.get().containsKey(key);
}
@Override
public Object get(Object key) {
- ensureInitialized();
- return orderedProps.get(key);
+ return getter.get().get(key);
}
@Override
public synchronized String toString() {
- ensureInitialized();
- return orderedProps.toString();
+ return getter.get().toString();
}
@Override
public Set<Object> keySet() {
- ensureInitialized();
- return orderedProps.keySet();
+ return new OrderedProperties(getter.get()).keySet();
}
@Override
public Collection<Object> values() {
- ensureInitialized();
- return orderedProps.values();
+ return new OrderedProperties(getter.get()).values();
}
@Override
public Set<Map.Entry<Object, Object>> entrySet() {
- ensureInitialized();
- return orderedProps.entrySet();
+ return new OrderedProperties(getter.get()).entrySet();
}
@Override
public synchronized boolean equals(Object o) {
- ensureInitialized();
if (o instanceof WrapperProperties wrapperProperties) {
- wrapperProperties.ensureInitialized();
- return orderedProps.equals(wrapperProperties.orderedProps);
+ o = wrapperProperties.getter.get();
}
- return orderedProps.equals(o);
+ return getter.get().equals(o);
}
@Override
public synchronized int hashCode() {
- ensureInitialized();
- return orderedProps.hashCode();
+ return getter.get().hashCode();
}
@Override
public Object getOrDefault(Object key, Object defaultValue) {
- ensureInitialized();
- return orderedProps.getOrDefault(key, defaultValue);
+ if (key instanceof String str && defaultValue instanceof String def) {
+ return getter.get().getOrDefault(key, def);
+ } else {
+ return defaultValue;
+ }
Review Comment:
```suggestion
return key instanceof String str && defaultValue instanceof String
def
? getter.get().getOrDefault(key, def)
: defaultValue;
```
this is the term reduced to its (c)leanest.
##########
src/mdo/java/WrapperProperties.java:
##########
@@ -101,102 +88,89 @@ public void list(PrintWriter out) {
@Override
public int size() {
- ensureInitialized();
- return orderedProps.size();
+ return getter.get().size();
}
@Override
public boolean isEmpty() {
- ensureInitialized();
- return orderedProps.isEmpty();
+ return getter.get().isEmpty();
}
@Override
public Enumeration<Object> keys() {
- ensureInitialized();
- return orderedProps.keys();
+ return Collections.enumeration((Set) getter.get().keySet());
}
@Override
public Enumeration<Object> elements() {
- ensureInitialized();
- return orderedProps.elements();
+ return Collections.enumeration((Collection) getter.get().values());
}
@Override
public boolean contains(Object value) {
- ensureInitialized();
- return orderedProps.contains(value);
+ return getter.get().containsKey(value != null ? value.toString() :
null);
}
@Override
public boolean containsValue(Object value) {
- ensureInitialized();
- return orderedProps.containsValue(value);
+ return getter.get().containsValue(value);
}
@Override
public boolean containsKey(Object key) {
- ensureInitialized();
- return orderedProps.containsKey(key);
+ return getter.get().containsKey(key);
}
@Override
public Object get(Object key) {
- ensureInitialized();
- return orderedProps.get(key);
+ return getter.get().get(key);
}
@Override
public synchronized String toString() {
- ensureInitialized();
- return orderedProps.toString();
+ return getter.get().toString();
}
@Override
public Set<Object> keySet() {
- ensureInitialized();
- return orderedProps.keySet();
+ return new OrderedProperties(getter.get()).keySet();
}
@Override
public Collection<Object> values() {
- ensureInitialized();
- return orderedProps.values();
+ return new OrderedProperties(getter.get()).values();
}
@Override
public Set<Map.Entry<Object, Object>> entrySet() {
- ensureInitialized();
- return orderedProps.entrySet();
+ return new OrderedProperties(getter.get()).entrySet();
}
@Override
public synchronized boolean equals(Object o) {
- ensureInitialized();
if (o instanceof WrapperProperties wrapperProperties) {
- wrapperProperties.ensureInitialized();
- return orderedProps.equals(wrapperProperties.orderedProps);
+ o = wrapperProperties.getter.get();
Review Comment:
```suggestion
return getter.get().equals(
o instanceof WrapperProperties wrapperProperties
? wrapperProperties.getter.get()
: o);
```
one thing only.
##########
src/mdo/java/WrapperProperties.java:
##########
@@ -324,22 +302,19 @@ public synchronized void load(InputStream inStream)
throws IOException {
@Override
public void save(OutputStream out, String comments) {
- Properties props = new Properties();
- props.putAll(getter.get());
+ OrderedProperties props = new OrderedProperties(getter.get());
props.save(out, comments);
}
@Override
public void store(Writer writer, String comments) throws IOException {
- Properties props = new Properties();
- props.putAll(getter.get());
+ OrderedProperties props = new OrderedProperties(getter.get());
props.store(writer, comments);
}
@Override
public void store(OutputStream out, String comments) throws IOException {
- Properties props = new Properties();
- props.putAll(getter.get());
+ OrderedProperties props = new OrderedProperties(getter.get());
Review Comment:
please inline, considering sonar motivation.
- https://github.com/pmd/pmd/issues/5770
##########
src/mdo/java/WrapperProperties.java:
##########
@@ -350,28 +325,32 @@ public synchronized void loadFromXML(InputStream in)
throws IOException, Invalid
@Override
public void storeToXML(OutputStream os, String comment) throws IOException
{
- Properties props = new Properties();
- props.putAll(getter.get());
+ OrderedProperties props = new OrderedProperties(getter.get());
props.storeToXML(os, comment);
}
@Override
public void storeToXML(OutputStream os, String comment, String encoding)
throws IOException {
- Properties props = new Properties();
- props.putAll(getter.get());
+ OrderedProperties props = new OrderedProperties(getter.get());
props.storeToXML(os, comment, encoding);
}
private Object writeReplace() throws java.io.ObjectStreamException {
- Properties props = new Properties();
- props.putAll(getter.get());
+ OrderedProperties props = new OrderedProperties(getter.get());
return props;
}
private class OrderedProperties extends Properties {
private final List<Object> keyOrder = new CopyOnWriteArrayList<>();
+ public OrderedProperties() {
Review Comment:
if explicit unused loose.
##########
src/mdo/java/WrapperProperties.java:
##########
@@ -208,16 +182,20 @@ interface WriteOpVoid {
}
private <T> T writeOperation(WriteOp<T> runner) {
- ensureInitialized();
- T ret = runner.perform(orderedProps);
- setter.accept(orderedProps);
+ OrderedProperties props = new OrderedProperties(getter.get());
+ T ret = runner.perform(props);
+ if (!props.equals(getter.get())) {
+ setter.accept(props);
+ }
return ret;
}
private void writeOperationVoid(WriteOpVoid runner) {
- ensureInitialized();
- runner.perform(orderedProps);
- setter.accept(orderedProps);
+ OrderedProperties props = new OrderedProperties(getter.get());
+ runner.perform(props);
+ if (!props.equals(getter.get())) {
+ setter.accept(props);
+ }
Review Comment:
```suggestion
acceptNewValue()
```
dedicate.
##########
src/mdo/java/WrapperProperties.java:
##########
@@ -350,28 +325,32 @@ public synchronized void loadFromXML(InputStream in)
throws IOException, Invalid
@Override
public void storeToXML(OutputStream os, String comment) throws IOException
{
- Properties props = new Properties();
- props.putAll(getter.get());
+ OrderedProperties props = new OrderedProperties(getter.get());
Review Comment:
please inline, considering sonar motivation.
- https://github.com/pmd/pmd/issues/5770
##########
src/mdo/java/WrapperProperties.java:
##########
@@ -208,16 +182,20 @@ interface WriteOpVoid {
}
private <T> T writeOperation(WriteOp<T> runner) {
- ensureInitialized();
- T ret = runner.perform(orderedProps);
- setter.accept(orderedProps);
+ OrderedProperties props = new OrderedProperties(getter.get());
+ T ret = runner.perform(props);
+ if (!props.equals(getter.get())) {
+ setter.accept(props);
+ }
Review Comment:
```suggestion
acceptNewValue()
```
dedicate.
##########
src/mdo/java/WrapperProperties.java:
##########
@@ -350,28 +325,32 @@ public synchronized void loadFromXML(InputStream in)
throws IOException, Invalid
@Override
public void storeToXML(OutputStream os, String comment) throws IOException
{
- Properties props = new Properties();
- props.putAll(getter.get());
+ OrderedProperties props = new OrderedProperties(getter.get());
props.storeToXML(os, comment);
}
@Override
public void storeToXML(OutputStream os, String comment, String encoding)
throws IOException {
- Properties props = new Properties();
- props.putAll(getter.get());
+ OrderedProperties props = new OrderedProperties(getter.get());
props.storeToXML(os, comment, encoding);
}
private Object writeReplace() throws java.io.ObjectStreamException {
- Properties props = new Properties();
- props.putAll(getter.get());
+ OrderedProperties props = new OrderedProperties(getter.get());
return props;
}
private class OrderedProperties extends Properties {
Review Comment:
its private class so default constructor `OrderedProperties()` seems unused.
##########
src/mdo/java/WrapperProperties.java:
##########
@@ -350,28 +325,32 @@ public synchronized void loadFromXML(InputStream in)
throws IOException, Invalid
@Override
public void storeToXML(OutputStream os, String comment) throws IOException
{
- Properties props = new Properties();
- props.putAll(getter.get());
+ OrderedProperties props = new OrderedProperties(getter.get());
props.storeToXML(os, comment);
}
@Override
public void storeToXML(OutputStream os, String comment, String encoding)
throws IOException {
- Properties props = new Properties();
- props.putAll(getter.get());
+ OrderedProperties props = new OrderedProperties(getter.get());
props.storeToXML(os, comment, encoding);
}
private Object writeReplace() throws java.io.ObjectStreamException {
- Properties props = new Properties();
- props.putAll(getter.get());
+ OrderedProperties props = new OrderedProperties(getter.get());
Review Comment:
please inline, considering sonar.
- https://github.com/pmd/pmd/issues/5770
##########
src/mdo/java/WrapperProperties.java:
##########
@@ -50,43 +50,30 @@ class WrapperProperties extends Properties {
final Supplier<Map<String, String>> getter;
final Consumer<Properties> setter;
- private final OrderedProperties orderedProps = new OrderedProperties();
Review Comment:
loose.
<img width="337" alt="image"
src="https://github.com/user-attachments/assets/795b493f-436a-453a-910a-85bb4eaed5b1"
/>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]