org.opendaylight.restconf.server.spi.MapBodyOrder Maven / Gradle / Ivy
/*
* Copyright (c) 2024 PANTHEON.tech, s.r.o. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
package org.opendaylight.restconf.server.spi;
import java.io.IOException;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
/**
* The order in which {@link MapEntryNode}s of a particular {@link MapNode} should be emitted in. This is a sealed
* internal implementation detail.
*
* @apiNote This contract exposes two singleton implementations, which we could model via an enum. We went the way
* of a sealed abstract for two reasons:
* - we do not want to expose orderChildren
* - we actually do not want to load IterationMapBodyOrder unless requested, so that the JVM does not have
* to worry about it unless requested
* -
*/
@NonNullByDefault
abstract sealed class MapBodyOrder permits DefaultMapBodyOrder, IterationMapBodyOrder {
/**
* Order the body of specified node.
*
* @param entry map entry
* @return The body in the order it should be written out
*/
abstract Iterable orderBody(MapEntryNode entry) throws IOException;
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy