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

io.permazen.core.FieldSwitchAdapter Maven / Gradle / Ivy


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

package io.permazen.core;

import java.util.Collection;

/**
 * Adapter class for {@link FieldSwitch}.
 *
 * @param  switch method return type
 */
public class FieldSwitchAdapter implements FieldSwitch {

    /**
     * Handle a {@link SetField}.
     *
     * 

* The implementation in {@link FieldSwitchAdapter} delegates to {@link #caseCollectionField caseCollectionField()}. */ @Override public R caseSetField(SetField field) { return this.caseCollectionField(field); } /** * Handle a {@link ListField}. * *

* The implementation in {@link FieldSwitchAdapter} delegates to {@link #caseCollectionField caseCollectionField()}. */ @Override public R caseListField(ListField field) { return this.caseCollectionField(field); } /** * Handle a {@link MapField}. * *

* The implementation in {@link FieldSwitchAdapter} delegates to {@link #caseComplexField caseComplexField()}. */ @Override public R caseMapField(MapField field) { return this.caseComplexField(field); } /** * Handle a {@link SimpleField}. * *

* The implementation in {@link FieldSwitchAdapter} delegates to {@link #caseField caseField()}. */ @Override public R caseSimpleField(SimpleField field) { return this.caseField(field); } /** * Handle a {@link ReferenceField}. * *

* The implementation in {@link FieldSwitchAdapter} delegates to {@link #caseSimpleField caseSimpleField()}. */ @Override public R caseReferenceField(ReferenceField field) { return this.caseSimpleField(field); } /** * Handle a {@link CounterField}. * *

* The implementation in {@link FieldSwitchAdapter} delegates to {@link #caseField caseField()}. */ @Override public R caseCounterField(CounterField field) { return this.caseField(field); } /** * Handle a {@link EnumField}. * *

* The implementation in {@link FieldSwitchAdapter} delegates to {@link #caseSimpleField caseSimpleField()}. */ @Override public R caseEnumField(EnumField field) { return this.caseSimpleField(field); } /** * Adapter class roll-up method. * *

* The implementation in {@link FieldSwitchAdapter} delegates to {@link #caseComplexField caseComplexField()}. * * @param field visiting field * @param visiting field type * @param collection element type * @return visitor return value */ protected , E> R caseCollectionField(CollectionField field) { return this.caseComplexField(field); } /** * Adapter class roll-up method. * *

* The implementation in {@link FieldSwitchAdapter} delegates to {@link #caseField caseField()}. * * @param field visiting field * @param visiting field type * @return visitor return value */ protected R caseComplexField(ComplexField field) { return this.caseField(field); } /** * Adapter class roll-up method. * *

* The implementation in {@link FieldSwitchAdapter} always throws {@link UnsupportedOperationException}. * * @param field visiting field * @param visiting field type * @return visitor return value */ protected R caseField(Field field) { throw new UnsupportedOperationException("field type not handled: " + field); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy