Oracle® Fusion Middleware C++ API Reference for Oracle Coherence
12c (12.2.1.3.0)

E80355-01

coherence/util/extractor/AbstractCompositeExtractor.hpp

00001 /*
00002 * AbstractCompositeExtractor.hpp
00003 *
00004 * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
00005 *
00006 * Oracle is a registered trademarks of Oracle Corporation and/or its
00007 * affiliates.
00008 *
00009 * This software is the confidential and proprietary information of Oracle
00010 * Corporation. You shall not disclose such confidential and proprietary
00011 * information and shall use it only in accordance with the terms of the
00012 * license agreement you entered into with Oracle.
00013 *
00014 * This notice may not be removed or altered.
00015 */
00016 #ifndef COH_ABSTRACT_COMPOSITE_EXTRACTOR_HPP
00017 #define COH_ABSTRACT_COMPOSITE_EXTRACTOR_HPP
00018 
00019 #include "coherence/lang.ns"
00020 
00021 #include "coherence/io/pof/PofReader.hpp"
00022 #include "coherence/io/pof/PofWriter.hpp"
00023 #include "coherence/util/extractor/AbstractExtractor.hpp"
00024 
00025 COH_OPEN_NAMESPACE3(coherence,util,extractor)
00026 
00027 using coherence::io::pof::PofReader;
00028 using coherence::io::pof::PofWriter;
00029 
00030 
00031 /**
00032 * Abstract super class for ValueExtractor implementations that are based on
00033 * an underlying array of ValueExtractor objects.
00034 *
00035 * @author djl  2008.03.05
00036 */
00037 class COH_EXPORT AbstractCompositeExtractor
00038     : public abstract_spec<AbstractCompositeExtractor,
00039         extends<AbstractExtractor> >
00040     {
00041     friend class factory<AbstractCompositeExtractor>;
00042 
00043     // ----- constructors ---------------------------------------------------
00044 
00045     protected:
00046         /**
00047         * Default constructor (necessary for the PortableObject interface).
00048         */
00049         AbstractCompositeExtractor();
00050 
00051         /**
00052         * Construct a AbstractCompositeExtractor based on the specified
00053         * ValueExtractor array.
00054         *
00055         * @param vaExtractor  the ValueExtractor array
00056         */
00057         AbstractCompositeExtractor(ObjectArray::View vaExtractor);
00058 
00059         /**
00060         * Construct a AbstractCompositeExtractor based on two ValueExtractors.
00061         *
00062         * @param vaE1  the first ValueExtractor
00063         * @param vaE2  the second ValueExtractor
00064         */
00065         AbstractCompositeExtractor(ValueExtractor::View vE1,
00066                 ValueExtractor::View vE2);
00067 
00068     private:
00069         /**
00070         * Blocked copy constructor.
00071         */
00072         AbstractCompositeExtractor(const AbstractCompositeExtractor&);
00073 
00074 
00075     // ----- PortableObject interface ---------------------------------------
00076 
00077     public:
00078         /**
00079         * {@inheritDoc}
00080         */
00081         virtual void readExternal(PofReader::Handle hIn);
00082 
00083         /**
00084         * {@inheritDoc}
00085         */
00086         virtual void writeExternal(PofWriter::Handle hOut) const;
00087 
00088 
00089     // ----- Object interface -----------------------------------------------
00090 
00091     public:
00092         /**
00093         * Compare the AbstractCompositeExtractor with another object to
00094         * determine equality. Two AbstractCompositeExtractor objects are
00095         * considered equal iff they belong to the same class and their
00096         * underlying ValueExtractor arrays are deep-equal.
00097         *
00098         * @return true iff this AbstractCompositeExtractor and the passed
00099         *         object are equivalent
00100         */
00101         virtual bool equals(Object::View v) const;
00102 
00103         /**
00104         * {@inheritDoc}
00105         */
00106         virtual size32_t hashCode() const;
00107 
00108         /**
00109         * {@inheritDoc}
00110         */
00111         virtual TypedHandle<const String> toString() const;
00112 
00113 
00114     // ----- data member accessors ------------------------------------------
00115 
00116     public:
00117         /**
00118         * Obtain the ValueExtractor array.
00119         *
00120         * @return the ValueExtractor array
00121         */
00122         virtual ObjectArray::View getExtractors() const;
00123 
00124 
00125     // ----- data members ---------------------------------------------------
00126 
00127     protected:
00128         /**
00129         * The ValueExtractor array.
00130         */
00131         FinalView<ObjectArray> f_vaExtractor;
00132     };
00133 
00134 COH_CLOSE_NAMESPACE3
00135 
00136 #endif // COH_ABSTRACT_COMPOSITE_EXTRACTOR_HPP
Copyright © 2000, 2017, Oracle and/or its affiliates. All rights reserved.