All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.permazen.demo.AbstractHasSatellites Maven / Gradle / Ivy


/*
 * Copyright (C) 2015 Archie L. Cobbs. All rights reserved.
 */

package io.permazen.demo;

import io.permazen.JObject;
import io.permazen.util.NavigableSets;

import java.util.NavigableSet;

/**
 * Support superclass for {@link HasSatellites} implementations.
 */
public abstract class AbstractHasSatellites> extends AbstractBody implements HasSatellites {

    private final Class satelliteType;

    protected AbstractHasSatellites(Class satelliteType) {
        this.satelliteType = satelliteType;
    }

    @Override
    public NavigableSet getSatellites() {
        final NavigableSet satellites = this.getTransaction().queryIndex(
          this.satelliteType, "parent", JObject.class).asMap().get(this);
        return satellites != null ? satellites : NavigableSets.empty();
    }
}