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

org.apache.calcite.util.Glossary Maven / Gradle / Ivy

There is a newer version: 1.17.0-flink-r3
Show newest version
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to you 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.
 */
package org.apache.calcite.util;

/**
 * A collection of terms.
 *
 * 

(This is not a real class. It is here so that terms which do not map to * classes can be referenced in Javadoc.)

*/ public interface Glossary { //~ Static fields/initializers --------------------------------------------- // CHECKSTYLE: OFF /** *

This table shows how and where the Gang of Four patterns are applied. * The table uses information from the GoF book and from a course on * advanced object design taught by Craig Larman.

* *

The patterns are in three groups depicting frequency of use. The * patterns in light green are used * frequently. Those in yellow have * moderate use. Patterns in red are * infrequently used. The GoF column gives the original Gang Of Four * category for the pattern. The Problem and Pattern columns are from * Craig's refinement of the type of problems they apply to and a refinement * of the original three pattern categories.

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * Gang of Four Patterns *
Pattern NameGOF CategoryProblemPatternOften UsesRelated To
Abstract Factory * CreationalCreating InstancesClass/Interface Definition plus InheritanceFactory Method
* Prototype
* Singleton with * Facade
Factory Method
* Prototype
* Singleton
Object Adapter * StructuralInterfaceWrap One-Bridge
* Decorator
* Proxy
CommandBehavioralOrganization or Communication of Work
* Action/Response
Behavior ObjectsCompositeComposite
* Memento
* Prototype
CompositeStructuralStructural Decomposition of Objects or SubsystemsWrap Many-Decorator
* Iterator
* Visitor
DecoratorStructuralInstance BehaviorWrap One-Object Adapter
* Composite
* Strategy
FacadeStructuralAccess Control
*   *
*

Structural Decomposition of Objects or Subsystems

Wrap ManySingleton with Abstract FactoryAbstract Factory
* Mediator
FlyweightStructuralShared Resource HandlingObject State or Values-Singleton
* State
* Strategy
* Shareable
IteratorBehavioralTraversal Algorithm
*   *
*

Access Control

Low Coupling-Composite
* Factory Method
* Memento
ObserverBehavioralEvent Response
*   *
*

Organization or Communication of Work

Low Coupling-Mediator
* Singleton
ProxyStructuralAccess ControlWrap One-Adapter
* Decorator
SingletonCreationalAccess ControlOther-Abstract Factory
* Builder
* Prototype
StateBehavioralInstance BehaviorObject State or ValuesFlyweightFlyweight
* Singleton
StrategyBehavioralSingle AlgorithmBehavior Objects-Flyweight
* State
* Template Method
Template Method * BehavioralSingle AlgorithmClass or Interface Definition plus Inheritance-Strategy
Class Adapter * StructuralInterfaceClass or Interface Definition plus Inheritance-Bridge
* Decorator
* Proxy
BridgeStructuralImplementationWrap One-Abstract Factory
* Class Adaptor
BuilderCreationalCreating StructuresClass or Interface Definition plus Inheritance-Abstract Factory
* Composite
Chain of * ResponsibilityBehavioralSingle Algorithm
*   *
*

Organization or Communication of Work

Low Coupling-Composite
Factory Method * CreationalCreating InstancesClass or Interface Definition plus InheritanceTemplate MethodAbstract Factory
* Template Method
* Prototype
MediatorBehavioralInteraction between Objects
*   *
*

Organization or Communication of Work

Low Coupling-Facade
* Observer
PrototypeCreationalCreating InstancesOther-Prototype
* Composite
* Decorator
VisitorBehavioralSingle AlgorithmBehavior Objects-Composite
* Visitor
* InterpreterBehavioralOrganization or Communication of WorkOther-Composite
* Flyweight
* Iterator
* Visitor
* MementoBehavioralInstance ManagementObject State or Values-Command
* Iterator
*/ // CHECKSTYLE: ON Glossary PATTERN = null; /** * Provide an interface for creating families of related or dependent * objects without specifying their concrete classes. (See GoF.) */ Glossary ABSTRACT_FACTORY_PATTERN = null; /** * Separate the construction of a complex object from its representation so * that the same construction process can create different representations. * (See GoF.) */ Glossary BUILDER_PATTERN = null; /** * Define an interface for creating an object, but let subclasses decide * which class to instantiate. Lets a class defer instantiation to * subclasses. (See * GoF.) */ Glossary FACTORY_METHOD_PATTERN = null; /** * Specify the kinds of objects to create using a prototypical instance, and * create new objects by copying this prototype. (See GoF.) */ Glossary PROTOTYPE_PATTERN = null; /** * Ensure a class only has one instance, and provide a global point of * access to it. (See * GoF.) * *

Note that a common way of implementing a singleton, the so-called * double-checked locking pattern, is fatally flawed in Java. Don't use * it!

*/ Glossary SINGLETON_PATTERN = null; /** * Convert the interface of a class into another interface clients expect. * Lets classes work together that couldn't otherwise because of * incompatible interfaces. (See GoF.) */ Glossary ADAPTER_PATTERN = null; /** * Decouple an abstraction from its implementation so that the two can very * independently. (See * GoF.) */ Glossary BRIDGE_PATTERN = null; /** * Compose objects into tree structures to represent part-whole hierarchies. * Lets clients treat individual objects and compositions of objects * uniformly. (See * GoF.) */ Glossary COMPOSITE_PATTERN = null; /** * Attach additional responsibilities to an object dynamically. Provides a * flexible alternative to subclassing for extending functionality. (See GoF.) */ Glossary DECORATOR_PATTERN = null; /** * Provide a unified interface to a set of interfaces in a subsystem. * Defines a higher-level interface that makes the subsystem easier to use. * (See GoF.) */ Glossary FACADE_PATTERN = null; /** * Use sharing to support large numbers of fine-grained objects efficiently. * (See GoF.) */ Glossary FLYWEIGHT_PATTERN = null; /** * Provide a surrogate or placeholder for another object to control access * to it. (See GoF.) */ Glossary PROXY_PATTERN = null; /** * Avoid coupling the sender of a request to its receiver by giving more * than one object a chance to handle the request. Chain the receiving * objects and pass the request along the chain until an object handles it. * (See * GoF.) */ Glossary CHAIN_OF_RESPONSIBILITY_PATTERN = null; /** * Encapsulate a request as an object, thereby letting you parameterize * clients with different requests, queue or log requests, and support * undoable operations. (See GoF.) */ Glossary COMMAND_PATTERN = null; /** * Given a language, define a representation for its grammar along with an * interpreter that uses the representation to interpret sentences in the * language. (See * GoF.) */ Glossary INTERPRETER_PATTERN = null; /** * Provide a way to access the elements of an aggregate object sequentially * without exposing its underlying representation. (See GoF.) */ Glossary ITERATOR_PATTERN = null; /** * Define an object that encapsulates how a set of objects interact. * Promotes loose coupling by keeping objects from referring to each other * explicitly, and it lets you vary their interaction independently. (See GoF.) */ Glossary MEDIATOR_PATTERN = null; /** * Without violating encapsulation, capture and externalize an objects's * internal state so that the object can be restored to this state later. * (See GoF.) */ Glossary MEMENTO_PATTERN = null; /** * Define a one-to-many dependency between objects so that when one object * changes state, all its dependents are notified and updated automatically. * (See GoF.) */ Glossary OBSERVER_PATTERN = null; /** * Allow an object to alter its behavior when its internal state changes. * The object will appear to change its class. (See GoF.) */ Glossary STATE_PATTERN = null; /** * Define a family of algorithms, encapsulate each one, and make them * interchangeable. Lets the algorithm vary independently from clients that * use it. (See GoF.) */ Glossary STRATEGY_PATTERN = null; /** * Define the skeleton of an algorithm in an operation, deferring some steps * to subclasses. Lets subclasses redefine certain steps of an algorithm * without changing the algorithm's structure. (See GoF.) */ Glossary TEMPLATE_METHOD_PATTERN = null; /** * Represent an operation to be performed on the elements of an object * structure. Lets you define a new operation without changing the classes * of the elements on which it operates. (See GoF.) */ Glossary VISITOR_PATTERN = null; /** * The official SQL-92 standard (ISO/IEC 9075:1992). To reference this * standard from methods that implement its rules, use the @sql.92 * custom block tag in Javadoc comments; for the tag body, use the format * <SectionId> [ ItemType <ItemId> ], where * *
    *
  • SectionId is the numbered or named section in the table * of contents, e.g. "Section 4.18.9" or "Annex A" *
  • ItemType is one of { Table, Syntax Rule, Access Rule, * General Rule, or Leveling Rule } *
  • ItemId is a dotted path expression to the specific item *
* *

For example, * *

@sql.92 Section 11.4 Syntax Rule 7.c
   * 
* *

is a well-formed reference to the rule for the default character set to * use for column definitions of character type. * *

Note that this tag is a block tag (like @see) and cannot be used * inline. */ Glossary SQL92 = null; /** * The official SQL:1999 standard (ISO/IEC 9075:1999), which is broken up * into five parts. To reference this standard from methods that implement * its rules, use the @sql.99 custom block tag in Javadoc comments; for * the tag body, use the format <PartId> <SectionId> [ * ItemType <ItemId> ], where * *

    *
  • PartId is the numbered part (up to Part 5) *
  • SectionId is the numbered or named section in the part's * table of contents, e.g. "Section 4.18.9" or "Annex A" *
  • ItemType is one of { Table, Syntax Rule, Access Rule, * General Rule, or Conformance Rule } *
  • ItemId is a dotted path expression to the specific item *
* *

For example, * *

@sql.99 Part 2 Section 11.4 Syntax Rule 7.b
   * 
* *

is a well-formed reference to the rule for the default character set to * use for column definitions of character type. * *

Note that this tag is a block tag (like @see) and cannot be used * inline. */ Glossary SQL99 = null; /** * The official SQL:2003 standard (ISO/IEC 9075:2003), which is broken up * into numerous parts. To reference this standard from methods that * implement its rules, use the @sql.2003 custom block tag in Javadoc * comments; for the tag body, use the format <PartId> * <SectionId> [ ItemType <ItemId> ], where * *

    *
  • PartId is the numbered part *
  • SectionId is the numbered or named section in the part's * table of contents, e.g. "Section 4.11.2" or "Annex A" *
  • ItemType is one of { Table, Syntax Rule, Access Rule, * General Rule, or Conformance Rule } *
  • ItemId is a dotted path expression to the specific item *
* *

For example, * *

@sql.2003 Part 2 Section 11.4 Syntax Rule 10.b
   * 
* *

is a well-formed reference to the rule for the default character set to * use for column definitions of character type. * *

Note that this tag is a block tag (like @see) and cannot be used * inline. */ Glossary SQL2003 = null; } // End Glossary.java





© 2015 - 2024 Weber Informatics LLC | Privacy Policy