This is an automated email from the ASF dual-hosted git repository.
struberg pushed a commit to branch johnzon-1.2.x
in repository https://gitbox.apache.org/repos/asf/johnzon.git
The following commit(s) were added to refs/heads/johnzon-1.2.x by this push:
new 67bb7a10 JOHNZON-421 remove now unused functionality
67bb7a10 is described below
commit 67bb7a108a65205eab319b872bd37830aa388bbd
Author: Mark Struberg <[email protected]>
AuthorDate: Fri Feb 27 15:32:22 2026 +0100
JOHNZON-421 remove now unused functionality
---
.../johnzon/mapper/DynamicMappingGenerator.java | 581 ---------------------
.../johnzon/mapper/MappingGeneratorImpl.java | 16 +-
2 files changed, 3 insertions(+), 594 deletions(-)
diff --git
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/DynamicMappingGenerator.java
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/DynamicMappingGenerator.java
deleted file mode 100644
index 9c74b760..00000000
---
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/DynamicMappingGenerator.java
+++ /dev/null
@@ -1,581 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.johnzon.mapper;
-
-import javax.json.JsonValue;
-import javax.json.stream.JsonGenerator;
-import java.math.BigDecimal;
-import java.math.BigInteger;
-
-@Deprecated
-public class DynamicMappingGenerator implements MappingGenerator {
- private final MappingGenerator delegate;
- private final Runnable writeStart;
- private final Runnable writeEnd;
- private final String keyName;
-
- protected InObjectOrPrimitiveJsonGenerator generator;
-
- public DynamicMappingGenerator(final MappingGenerator delegate,
- final Runnable writeStart,
- final Runnable writeEnd,
- final String keyName) {
- this.delegate = delegate;
- this.writeStart = writeStart;
- this.writeEnd = writeEnd;
- this.keyName = keyName;
- }
-
-
- @Override
- public MappingGenerator writeObject(final String key, final Object o,
final JsonGenerator generator) {
- return delegate.writeObject(key, o, generator);
- }
-
- @Override
- public MappingGenerator writeObject(final Object o, final JsonGenerator
generator) {
- return delegate.writeObject(o, generator);
- }
-
- protected void reset() {
- // no-op
- }
-
- public void flushIfNeeded() {
- if (generator != null) {
- generator.endIfNeeded();
- }
- }
-
- private enum WritingState {
- NONE,
- WROTE_START,
- DONT_WRITE_END
- }
-
- public static class InObjectOrPrimitiveJsonGenerator implements
JsonGenerator {
- private final JsonGenerator delegate;
- private final Runnable writeStart;
- private final Runnable writeEnd;
- private final String keyIfNoObject;
- private WritingState state = WritingState.NONE; // todo: we need a
stack (linkedlist) here to be accurate
- private int nested = 0;
- private boolean implicitStart;
-
- private InObjectOrPrimitiveJsonGenerator(final JsonGenerator
generator, final Runnable writeStart,
- final String keyName, final
Runnable writeEnd) {
- this.delegate = generator;
- this.writeStart = writeStart;
- this.writeEnd = writeEnd;
- this.keyIfNoObject = keyName;
- }
-
- private void ensureStart() {
- if (state != WritingState.NONE) {
- return;
- }
- writeStart.run();
- state = WritingState.WROTE_START;
- }
-
- @Override
- public JsonGenerator writeStartObject() {
- if (state == WritingState.NONE) {
- ensureStart();
- } else {
- nested++;
- delegate.writeStartObject();
- }
- return this;
- }
-
- @Override
- public JsonGenerator writeStartObject(final String name) {
- if (state == WritingState.NONE) {
- ensureStart();
- }
- nested++;
- delegate.writeStartObject(name);
- return this;
- }
-
- @Override
- public JsonGenerator writeStartArray() {
- if (state != WritingState.NONE) {
- nested++;
- }
- if (keyIfNoObject != null && state == WritingState.NONE) {
- state = WritingState.DONT_WRITE_END; // skip writeEnd since
the impl will do it
- return delegate.writeStartArray(keyIfNoObject);
- } else if (state == WritingState.NONE) {
- ensureStart();
- return this;
- }
- delegate.writeStartArray();
- return this;
- }
-
- @Override
- public JsonGenerator writeStartArray(final String name) {
- if (state == WritingState.NONE && !implicitStart) { // force an
enclosing object since we write in an object (we have a key)
- writeStartObject();
- implicitStart = true;
- }
- if (state != WritingState.NONE) {
- nested++;
- }
- ensureStart();
- delegate.writeStartArray(name);
- return this;
- }
-
- @Override
- public JsonGenerator writeKey(final String name) {
- ensureStart();
- delegate.writeKey(name);
- return this;
- }
-
- @Override
- public JsonGenerator write(final String name, final JsonValue value) {
- ensureStart();
- delegate.write(name, value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final String name, final String value) {
- ensureStart();
- delegate.write(name, value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final String name, final BigInteger value) {
- ensureStart();
- delegate.write(name, value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final String name, final BigDecimal value) {
- ensureStart();
- delegate.write(name, value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final String name, final int value) {
- ensureStart();
- delegate.write(name, value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final String name, final long value) {
- ensureStart();
- delegate.write(name, value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final String name, final double value) {
- ensureStart();
- delegate.write(name, value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final String name, final boolean value) {
- ensureStart();
- delegate.write(name, value);
- return this;
- }
-
- @Override
- public JsonGenerator writeNull(final String name) {
- ensureStart();
- delegate.writeNull(name);
- return this;
- }
-
- @Override
- public JsonGenerator write(final JsonValue value) {
- if (isWritingPrimitive()) {
- state = WritingState.DONT_WRITE_END;
- delegate.write(keyIfNoObject, value);
- return this;
- }
- delegate.write(value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final String value) {
- if (isWritingPrimitive()) {
- state = WritingState.DONT_WRITE_END;
- delegate.write(keyIfNoObject, value);
- return this;
- }
- delegate.write(value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final BigDecimal value) {
- if (isWritingPrimitive()) {
- state = WritingState.DONT_WRITE_END;
- delegate.write(keyIfNoObject, value);
- return this;
- }
- delegate.write(value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final BigInteger value) {
- if (isWritingPrimitive()) {
- state = WritingState.DONT_WRITE_END;
- delegate.write(keyIfNoObject, value);
- return this;
- }
- delegate.write(value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final int value) {
- if (isWritingPrimitive()) {
- state = WritingState.DONT_WRITE_END;
- delegate.write(keyIfNoObject, value);
- return this;
- }
- delegate.write(value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final long value) {
- if (isWritingPrimitive()) {
- state = WritingState.DONT_WRITE_END;
- delegate.write(keyIfNoObject, value);
- return this;
- }
- delegate.write(value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final double value) {
- if (isWritingPrimitive()) {
- state = WritingState.DONT_WRITE_END;
- delegate.write(keyIfNoObject, value);
- return this;
- }
- delegate.write(value);
- return this;
- }
-
- @Override
- public JsonGenerator write(boolean value) {
- if (isWritingPrimitive()) {
- state = WritingState.DONT_WRITE_END;
- delegate.write(keyIfNoObject, value);
- return this;
- }
- delegate.write(value);
- return this;
- }
-
- @Override
- public JsonGenerator writeNull() {
- if (isWritingPrimitive()) {
- state = WritingState.DONT_WRITE_END;
- delegate.writeNull(keyIfNoObject);
- return this;
- }
- delegate.writeNull();
- return this;
- }
-
- @Override
- public void close() {
- delegate.close();
- }
-
- @Override
- public void flush() {
- delegate.flush();
- }
-
- @Override
- public JsonGenerator writeEnd() {
- final JsonGenerator generator = doWriteEnd(false);
- if (nested == 0 && implicitStart) {
- doWriteEnd(false);
- }
- return generator;
- }
-
- private JsonGenerator doWriteEnd(final boolean useDelegate) {
- if (nested == 0 && state == WritingState.WROTE_START) {
- state = WritingState.NONE;
- }
- if (nested > 0) {
- nested--;
- }
- if (!useDelegate && nested == 0 && SkipEnclosingWriteEnd.NOOP !=
writeEnd) {
- writeEnd.run();
- } else {
- if (nested == 0) {
- final JsonGenerator unwrap = unwrap(delegate);
- unwrap.writeEnd();
- implicitStart = false;
- } else {
- delegate.writeEnd();
- }
- }
- return this;
- }
-
- private JsonGenerator unwrap(final JsonGenerator delegate) {
- JsonGenerator current = delegate;
- while (SkipLastWriteEndGenerator.class.isInstance(current)) {
- current =
SkipLastWriteEndGenerator.class.cast(current).delegate;
- }
- return current;
- }
-
- public void endIfNeeded() {
- endIfNeeded(this);
- }
-
- private boolean isWritingPrimitive() {
- return state == WritingState.NONE && keyIfNoObject != null;
- }
-
- public static void endIfNeeded(final JsonGenerator generator) {
- if (!InObjectOrPrimitiveJsonGenerator.class.isInstance(generator))
{
- return;
- }
- final InObjectOrPrimitiveJsonGenerator jsonGenerator =
InObjectOrPrimitiveJsonGenerator.class.cast(generator);
- if (jsonGenerator.state == WritingState.WROTE_START) {
- jsonGenerator.doWriteEnd(true);
- jsonGenerator.state = WritingState.DONT_WRITE_END;
- }
- }
- }
-
- private static abstract class DelegatingGenerator implements JsonGenerator
{
- protected final JsonGenerator delegate;
-
- protected DelegatingGenerator(final JsonGenerator generator) {
- this.delegate = generator;
- }
-
- @Override
- public JsonGenerator writeKey(final String name) {
- delegate.writeKey(name);
- return this;
- }
-
- @Override
- public JsonGenerator write(final String name, final JsonValue value) {
- delegate.write(name, value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final String name, final String value) {
- delegate.write(name, value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final String name, final BigInteger value) {
- delegate.write(name, value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final String name, final BigDecimal value) {
- delegate.write(name, value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final String name, final int value) {
- delegate.write(name, value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final String name, final long value) {
- delegate.write(name, value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final String name, final double value) {
- delegate.write(name, value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final String name, final boolean value) {
- delegate.write(name, value);
- return this;
- }
-
- @Override
- public JsonGenerator writeNull(final String name) {
- delegate.writeNull(name);
- return this;
- }
-
- @Override
- public JsonGenerator write(final JsonValue value) {
- delegate.write(value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final String value) {
- delegate.write(value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final BigDecimal value) {
- delegate.write(value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final BigInteger value) {
- delegate.write(value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final int value) {
- delegate.write(value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final long value) {
- delegate.write(value);
- return this;
- }
-
- @Override
- public JsonGenerator write(final double value) {
- delegate.write(value);
- return this;
- }
-
- @Override
- public JsonGenerator write(boolean value) {
- delegate.write(value);
- return this;
- }
-
- @Override
- public JsonGenerator writeNull() {
- delegate.writeNull();
- return this;
- }
-
- @Override
- public void close() {
- delegate.close();
- }
-
- @Override
- public void flush() {
- delegate.flush();
- }
- }
-
- private static class SkipLastWriteEndGenerator extends DelegatingGenerator
{
- private int level = -1;
-
- private SkipLastWriteEndGenerator(final JsonGenerator generator) {
- super(generator);
- }
-
- @Override
- public JsonGenerator writeStartObject() {
- level++;
- delegate.writeStartObject();
- return this;
- }
-
- @Override
- public JsonGenerator writeStartObject(final String name) {
- level++;
- if (level == 0) {
- level++; // force a writeEnd since it will be a nested object
and not the object we are writing
- }
- delegate.writeStartObject(name);
- return this;
- }
-
- @Override
- public JsonGenerator writeStartArray() {
- level++;
- delegate.writeStartArray();
- return this;
- }
-
- @Override
- public JsonGenerator writeStartArray(final String name) {
- delegate.writeStartArray(name);
- level++;
- return this;
- }
-
- @Override
- public JsonGenerator writeEnd() {
- if (level > 0) {
- delegate.writeEnd();
- } else if (level == 0 &&
-
InObjectOrPrimitiveJsonGenerator.class.isInstance(delegate) && // normally
always true
-
InObjectOrPrimitiveJsonGenerator.class.cast(delegate).implicitStart) {
- delegate.writeEnd();
- }
- level--;
- return this;
- }
- }
-
- public static class SkipEnclosingWriteEnd extends DynamicMappingGenerator {
- private static final Runnable NOOP = () -> {
- };
- private final JsonGenerator rawGenerator;
-
- private SkipLastWriteEndGenerator skippingGenerator;
-
- public SkipEnclosingWriteEnd(final MappingGenerator delegate, final
String keyName, final JsonGenerator generator) {
- super(delegate, NOOP, NOOP, keyName);
- this.rawGenerator = generator;
- }
- }
-}
diff --git
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingGeneratorImpl.java
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingGeneratorImpl.java
index 14df9b30..804aa2bd 100644
---
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingGeneratorImpl.java
+++
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/MappingGeneratorImpl.java
@@ -474,11 +474,9 @@ public class MappingGeneratorImpl implements
MappingGenerator {
BaseStream.class.cast(value).iterator(), value);
} else if (Iterator.class.isAssignableFrom(type)) {
if (objectConverter != null) {
- generator.writeStartObject(key);
- //X TODO 2 writeStartObject? sounds fishy...
- writeWithObjectConverter(new DynamicMappingGenerator(this,
- () -> generator.writeStartObject(key),
generator::writeEnd, key), objectConverter, value, generator);
- generator.writeEnd();
+ DeferredStartJsonGenerator deferredStartJsonGenerator = new
DeferredStartJsonGenerator(generator, key);
+ objectConverter.writeJson(value, this,
deferredStartJsonGenerator);
+ deferredStartJsonGenerator.writeEnd();
} else {
writeIterator(itemConverter, key, objectConverter,
ignoredProperties, jsonPointer, generator,
Iterator.class.cast(value), value);
@@ -522,14 +520,6 @@ public class MappingGeneratorImpl implements
MappingGenerator {
}
}
- @Deprecated
- private void writeWithObjectConverter(final DynamicMappingGenerator
dynamicMappingGenerator,
- final ObjectConverter.Writer
objectConverter,
- final Object value, JsonGenerator
generator) {
- objectConverter.writeJson(value, dynamicMappingGenerator, generator);
- dynamicMappingGenerator.flushIfNeeded();
- }
-
private void writeIterator(final Adapter itemConverter, final String key,
final ObjectConverter.Writer objectConverter,
final Collection<String> ignoredProperties,