001/** 002 * StructureStrategy.java 003 * 004 * Copyright (c) 2004-2012, Nicole C. Tedesco. All rights reserved. 005 * 006 * Licensed under the Apache License, Version 2.0 (the "License"); you may not 007 * use this file except in compliance with the License. You may obtain a copy of 008 * the License at: 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 014 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 015 * License for the specific language governing permissions and limitations under 016 * the License. 017 */ 018 019package net.sf.jaccumulator; 020 021/** 022 * General structure type 023 * 024 * @since JAccumulator 4.0 025 * @author Nicole Tedesco (<a 026 * href="mailto:Nicole@NicoleTedesco.com">Nicole@NicoleTedesco.com</a>) 027 */ 028public enum StructureStrategy 029{ 030 /** 031 * No more is known or can be said about this structure other than it is, at 032 * the most general level, an algebraic structure 033 */ 034 ALGEBRAIC, 035 036 /** 037 * A bit sequence, or tuple, such as a system-implemented scalar {@code int} 038 */ 039 BITS, 040 041 /** 042 * The empty set, {@code null} or {@code void}. Note that the empty set is a 043 * member of <i>every</i> set. 044 */ 045 EMPTY, 046 047 /** 048 * A functional mapping between elements of one structure to elements of 049 * another (element indirection) 050 */ 051 MAP, 052 053 /** 054 * A queue, stack or stream structure 055 */ 056 QUEUE, 057 058 /** 059 * No more is known or can be said about this structure other than it is, at 060 * the most general level, a set 061 */ 062 SET, 063 064 /** 065 * Exactly one, and only one element 066 */ 067 SINGLETON, 068 069 /** 070 * A generalized sequence, or <b>tuple</b> 071 */ 072 TUPLE, 073 074 /** 075 * Not enough is known about this structure 076 */ 077 UNKNOWN, 078 079 ; 080}