Sha256: cef8bb38ad14e3d781eacec82137f18dc664aa6365ecd5566a7058fcbadbad6b

Contents?: true

Size: 1.28 KB

Versions: 5

Compression:

Stored size: 1.28 KB

Contents

//
//  refract/ExpandVisitor.h
//  librefract
//
//  Created by Jiri Kratochvil on 17/06/15.
//  Copyright (c) 2015 Apiary Inc. All rights reserved.
//

#ifndef REFRACT_EXPANDVISITOR_H
#define REFRACT_EXPANDVISITOR_H

#include "ElementFwd.h"

namespace refract
{

    class Registry;

    class ExpandVisitor {

    public:
        struct Context;

        ExpandVisitor(const Registry& registry);
        ~ExpandVisitor();

        void operator()(const IElement& e);

        void operator()(const NullElement& e);

        void operator()(const StringElement& e);
        void operator()(const NumberElement& e);
        void operator()(const BooleanElement& e);

        void operator()(const MemberElement& e);

        void operator()(const ArrayElement& e);
        void operator()(const EnumElement& e);
        void operator()(const ObjectElement& e);

        void operator()(const ExtendElement& e);

        void operator()(const OptionElement& e);
        void operator()(const SelectElement& e);

        // return expanded elemnt or NULL if expansion is not needed
        // caller responsibility is to delete returned Element
        IElement* get() const;

    private:

        IElement* result;
        Context* context;
    };

}; // namespace refract

#endif // #ifndef REFRACT_EXPANVISITOR_H

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
lounge_lizard-0.1.4 ext/drafter/src/refract/ExpandVisitor.h
lounge_lizard-0.1.3 ext/drafter/src/refract/ExpandVisitor.h
lounge_lizard-0.1.2 ext/drafter/src/refract/ExpandVisitor.h
lounge_lizard-0.1.1 ext/drafter/src/refract/ExpandVisitor.h
lounge_lizard-0.1.0 ext/drafter/src/refract/ExpandVisitor.h