001/** 002 * Scalar.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.scalars; 020 021import net.sf.jaccumulator.booleans.BooleanValue; 022import net.sf.jaccumulator.bytes.ByteValue; 023import net.sf.jaccumulator.characters.CharacterValue; 024import net.sf.jaccumulator.doubles.DoubleValue; 025import net.sf.jaccumulator.floats.FloatValue; 026import net.sf.jaccumulator.integers.IntegerValue; 027import net.sf.jaccumulator.longs.LongValue; 028import net.sf.jaccumulator.shorts.ShortValue; 029 030/** 031 * Read and write operations for all system supported "scalar" values, or binary 032 * vectors optimized for processing and generally participate in arithmetic 033 * operators supported by the host programming language 034 * 035 * @param <SCALAR> 036 * this value type (used to facilitate operation chaining on write 037 * operations) 038 * @since JAccumulator 4.0 039 * @author Nicole Tedesco (<a 040 * href="mailto:Nicole@NicoleTedesco.com">Nicole@NicoleTedesco.com</a>) 041 */ 042public interface Scalar<SCALAR extends Scalar<SCALAR>> 043 extends 044 ScalarDomain<SCALAR>, 045 ScalarInductor<SCALAR>, 046 SealedScalar<SCALAR>, 047 MutableScalar<SCALAR>, 048 BooleanValue<SCALAR>, 049 ByteValue<SCALAR>, 050 CharacterValue<SCALAR>, 051 DoubleValue<SCALAR>, 052 FloatValue<SCALAR>, 053 IntegerValue<SCALAR>, 054 LongValue<SCALAR>, 055 ShortValue<SCALAR> 056{ 057}