org.sosy_lab.cpachecker.util.predicates.interfaces.view.BaseManagerView.java Source code

Java tutorial

Introduction

Here is the source code for org.sosy_lab.cpachecker.util.predicates.interfaces.view.BaseManagerView.java

Source

/*
 *  CPAchecker is a tool for configurable software verification.
 *  This file is part of CPAchecker.
 *
 *  Copyright (C) 2007-2014  Dirk Beyer
 *  All rights reserved.
 *
 *  Licensed 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.
 *
 *
 *  CPAchecker web page:
 *    http://cpachecker.sosy-lab.org
 */
package org.sosy_lab.cpachecker.util.predicates.interfaces.view;

import java.util.List;

import org.sosy_lab.cpachecker.util.predicates.interfaces.Formula;
import org.sosy_lab.cpachecker.util.predicates.interfaces.FormulaType;

import com.google.common.base.Function;
import com.google.common.collect.Lists;

abstract class BaseManagerView {

    private final FormulaManagerView baseManager;

    BaseManagerView(FormulaManagerView pViewManager) {
        baseManager = pViewManager;
    }

    FormulaManagerView getViewManager() {
        return baseManager;
    }

    final <T extends Formula> FormulaType<T> getFormulaType(T pFormula) {
        return baseManager.getFormulaType(pFormula);
    }

    final <T1 extends Formula, T2 extends Formula> T1 wrap(FormulaType<T1> targetType, T2 toWrap) {
        return baseManager.wrap(targetType, toWrap);
    }

    final Formula unwrap(Formula f) {
        return baseManager.unwrap(f);
    }

    final List<Formula> unwrap(List<? extends Formula> f) {
        return Lists.transform(f, new Function<Formula, Formula>() {
            @Override
            public Formula apply(Formula pInput) {
                return unwrap(pInput);
            }
        });
    }

    final FormulaType<?> unwrapType(FormulaType<?> pType) {
        return baseManager.unwrapType(pType);
    }

    final List<FormulaType<?>> unwrapType(List<? extends FormulaType<?>> pTypes) {
        return Lists.transform(pTypes, new Function<FormulaType<?>, FormulaType<?>>() {
            @Override
            public FormulaType<?> apply(FormulaType<?> pInput) {
                return unwrapType(pInput);
            }
        });
    }
}