org.glassfish.jaxb.runtime.v2.runtime.AssociationMap Maven / Gradle / Ivy
/*
* Copyright (c) 1997, 2020 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Distribution License v. 1.0, which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
package org.glassfish.jaxb.runtime.v2.runtime;
import java.util.HashSet;
import java.util.IdentityHashMap;
import java.util.Map;
import java.util.Set;
/**
* Bi-directional map between elements, inner peers,
* and outer peers.
*
*
* TODO: this should be rewritten for efficiency.
*
* @since 2.0
*
* @author
* Kohsuke Kawaguchi ([email protected])
*/
public final class AssociationMap {
final static class Entry {
/** XML element. */
private XmlNode element;
/** inner peer, or null. */
private Object inner;
/** outer peer, or null. */
private Object outer;
public XmlNode element() {
return element;
}
public Object inner() {
return inner;
}
public Object outer() {
return outer;
}
}
private final Map> byElement = new IdentityHashMap>();
private final Map