001/** 002 * PrimitiveProduction.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.lex; 020 021import java.math.BigDecimal; 022import java.math.BigInteger; 023 024import net.sf.jaccumulator.ControlIntention; 025import net.sf.jaccumulator.primitives.SealedPrimitive; 026import net.sf.jaccumulator.reals.SealedReal; 027import net.sf.jaccumulator.scalars.SealedScalar; 028import net.sf.jaccumulator.texts.SealedText; 029 030/** 031 * A <b>production</b> is an event processor associated with both a 032 * {@link Guard} and an {@link Action} 033 * 034 * @since JAccumulator 4.0 035 * @author Nicole Tedesco (<a 036 * href="mailto:nicole@tedesco.name">nicole@tedesco.name</a>) 037 */ 038public class PrimitiveProduction<MODEL> 039 implements 040 PrimitiveAction<MODEL>, 041 PrimitiveGuard<MODEL> 042{ 043 final PrimitiveAction<MODEL> _theAction; 044 final PrimitiveGuard<MODEL> _theGuard; 045 046 public PrimitiveProduction( 047 final PrimitiveGuard<MODEL> aGuard, 048 final PrimitiveAction<MODEL> anAction ) 049 { 050 this._theGuard = aGuard; 051 this._theAction = anAction; 052 } 053 054 @Override 055 public boolean acceptNull( final MODEL aModel ) 056 { 057 return this.getGuard().acceptNull(aModel); 058 } 059 060 @Override 061 public boolean acceptPrimitive( 062 final SealedPrimitive<?> aSignal, 063 final MODEL aModel ) 064 { 065 return this.getGuard().acceptPrimitive(aSignal, aModel); 066 } 067 068 @Override 069 public boolean acceptReal( final BigDecimal aSignal, final MODEL aModel ) 070 { 071 return this.getGuard().acceptReal(aSignal, aModel); 072 } 073 074 @Override 075 public boolean acceptReal( final BigInteger aSignal, final MODEL aModel ) 076 { 077 return this.getGuard().acceptReal(aSignal, aModel); 078 } 079 080 @Override 081 public boolean acceptReal( final SealedReal<?> aSignal, final MODEL aModel ) 082 { 083 return this.getGuard().acceptReal(aSignal, aModel); 084 } 085 086 @Override 087 public boolean acceptScalar( final boolean aSignal, final MODEL aModel ) 088 { 089 return this.getGuard().acceptScalar(aSignal, aModel); 090 } 091 092 @Override 093 public boolean acceptScalar( final byte aSignal, final MODEL aModel ) 094 { 095 return this.getGuard().acceptScalar(aSignal, aModel); 096 } 097 098 @Override 099 public boolean acceptScalar( final char aSignal, final MODEL aModel ) 100 { 101 return this.getGuard().acceptScalar(aSignal, aModel); 102 } 103 104 @Override 105 public boolean acceptScalar( final double aSignal, final MODEL aModel ) 106 { 107 return this.getGuard().acceptScalar(aSignal, aModel); 108 } 109 110 @Override 111 public boolean acceptScalar( final float aSignal, final MODEL aModel ) 112 { 113 return this.getGuard().acceptScalar(aSignal, aModel); 114 } 115 116 @Override 117 public boolean acceptScalar( final int aSignal, final MODEL aModel ) 118 { 119 return this.getGuard().acceptScalar(aSignal, aModel); 120 } 121 122 @Override 123 public boolean acceptScalar( final long aSignal, final MODEL aModel ) 124 { 125 return this.getGuard().acceptScalar(aSignal, aModel); 126 } 127 128 @Override 129 public boolean acceptScalar( 130 final SealedScalar<?> aSignal, 131 final MODEL aModel ) 132 { 133 return this.getGuard().acceptScalar(aSignal, aModel); 134 } 135 136 @Override 137 public boolean acceptScalar( final short aSignal, final MODEL aModel ) 138 { 139 return this.getGuard().acceptScalar(aSignal, aModel); 140 } 141 142 @Override 143 public boolean acceptText( final CharSequence aSignal, final MODEL aModel ) 144 { 145 return this.getGuard().acceptText(aSignal, aModel); 146 } 147 148 @Override 149 public boolean acceptText( final SealedText<?> aSignal, final MODEL aModel ) 150 { 151 return this.getGuard().acceptText(aSignal, aModel); 152 } 153 154 @Override 155 public boolean acceptText( final String aSignal, final MODEL aModel ) 156 { 157 return this.getGuard().acceptText(aSignal, aModel); 158 } 159 160 public final PrimitiveAction<MODEL> getAction() 161 { 162 return this._theAction; 163 } 164 165 @Override 166 public Logic getChildConjunction() 167 { 168 return this.getGuard().getChildConjunction(); 169 } 170 171 public final PrimitiveGuard<MODEL> getGuard() 172 { 173 return this._theGuard; 174 } 175 176 @Override 177 public NullGuard<MODEL> getNullGuardAt( final int anIndex ) 178 throws IndexOutOfBoundsException 179 { 180 return this.getGuard().getNullGuardAt(anIndex); 181 } 182 183 @Override 184 public int getNullGuardChildCount() 185 { 186 return this.getGuard().getNullGuardChildCount(); 187 } 188 189 @Override 190 public PrimitiveGuard<MODEL> getPrimitiveGuardAt( final int anIndex ) 191 throws IndexOutOfBoundsException 192 { 193 return this.getGuard().getPrimitiveGuardAt(anIndex); 194 } 195 196 @Override 197 public int getPrimitiveGuardChildCount() 198 { 199 return this.getGuard().getPrimitiveGuardChildCount(); 200 } 201 202 @Override 203 public RealGuard<MODEL> getRealGuardAt( final int anIndex ) 204 throws IndexOutOfBoundsException 205 { 206 return this.getGuard().getRealGuardAt(anIndex); 207 } 208 209 @Override 210 public int getRealGuardChildCount() 211 { 212 return this.getGuard().getRealGuardChildCount(); 213 } 214 215 @Override 216 public ScalarGuard<MODEL> getScalarGuardAt( final int anIndex ) 217 throws IndexOutOfBoundsException 218 { 219 return this.getGuard().getScalarGuardAt(anIndex); 220 } 221 222 @Override 223 public int getScalarGuardChildCount() 224 { 225 return this.getGuard().getScalarGuardChildCount(); 226 } 227 228 @Override 229 public TextGuard<MODEL> getTextGuardAt( final int anIndex ) 230 throws IndexOutOfBoundsException 231 { 232 return this.getGuard().getTextGuardAt(anIndex); 233 } 234 235 @Override 236 public int getTextGuardChildCount() 237 { 238 return this.getGuard().getTextGuardChildCount(); 239 } 240 241 @Override 242 public boolean isCompositeAction() 243 { 244 return this.getAction().isCompositeAction(); 245 } 246 247 @Override 248 public boolean isCompositeGuard() 249 { 250 return this.getGuard().isCompositeGuard(); 251 } 252 253 @Override 254 public boolean isSimpleAction() 255 { 256 return this.getAction().isCompositeAction(); 257 } 258 259 @Override 260 public boolean isSimpleGuard() 261 { 262 return this.getGuard().isCompositeGuard(); 263 } 264 265 @Override 266 public ControlIntention reactToNull( final MODEL aModel ) 267 { 268 return this.getAction().reactToNull(aModel); 269 } 270 271 @Override 272 public ControlIntention reactToPrimitive( 273 final SealedPrimitive<?> aSignal, 274 final MODEL aModel ) 275 { 276 return this.getAction().reactToPrimitive(aSignal, aModel); 277 } 278 279 @Override 280 public ControlIntention reactToReal( 281 final BigDecimal aSignal, 282 final MODEL aModel ) 283 { 284 return this.getAction().reactToReal(aSignal, aModel); 285 } 286 287 @Override 288 public ControlIntention reactToReal( 289 final BigInteger aSignal, 290 final MODEL aModel ) 291 { 292 return this.getAction().reactToReal(aSignal, aModel); 293 } 294 295 @Override 296 public ControlIntention reactToReal( 297 final SealedReal<?> aSignal, 298 final MODEL aModel ) 299 { 300 return this.getAction().reactToReal(aSignal, aModel); 301 } 302 303 @Override 304 public ControlIntention reactToScalar( 305 final boolean aSignal, 306 final MODEL aModel ) 307 { 308 return this.getAction().reactToScalar(aSignal, aModel); 309 } 310 311 @Override 312 public ControlIntention reactToScalar( 313 final byte aSignal, 314 final MODEL aModel ) 315 { 316 return this.getAction().reactToScalar(aSignal, aModel); 317 } 318 319 @Override 320 public ControlIntention reactToScalar( 321 final char aSignal, 322 final MODEL aModel ) 323 { 324 return this.getAction().reactToScalar(aSignal, aModel); 325 } 326 327 @Override 328 public ControlIntention reactToScalar( 329 final double aSignal, 330 final MODEL aModel ) 331 { 332 return this.getAction().reactToScalar(aSignal, aModel); 333 } 334 335 @Override 336 public ControlIntention reactToScalar( 337 final float aSignal, 338 final MODEL aModel ) 339 { 340 return this.getAction().reactToScalar(aSignal, aModel); 341 } 342 343 @Override 344 public ControlIntention reactToScalar( final int aSignal, final MODEL aModel ) 345 { 346 return this.getAction().reactToScalar(aSignal, aModel); 347 } 348 349 @Override 350 public ControlIntention reactToScalar( 351 final long aSignal, 352 final MODEL aModel ) 353 { 354 return this.getAction().reactToScalar(aSignal, aModel); 355 } 356 357 @Override 358 public ControlIntention reactToScalar( 359 final SealedScalar<?> aSignal, 360 final MODEL aModel ) 361 { 362 return this.getAction().reactToScalar(aSignal, aModel); 363 } 364 365 @Override 366 public ControlIntention reactToScalar( 367 final short aSignal, 368 final MODEL aModel ) 369 { 370 return this.getAction().reactToScalar(aSignal, aModel); 371 } 372 373 @Override 374 public ControlIntention reactToText( 375 final CharSequence aSignal, 376 final MODEL aModel ) 377 { 378 return this.getAction().reactToText(aSignal, aModel); 379 } 380 381 @Override 382 public ControlIntention reactToText( 383 final SealedText<?> aSignal, 384 final MODEL aModel ) 385 { 386 return this.getAction().reactToText(aSignal, aModel); 387 } 388 389 @Override 390 public ControlIntention reactToText( 391 final String aSignal, 392 final MODEL aModel ) 393 { 394 return this.getAction().reactToText(aSignal, aModel); 395 } 396 397 @Override 398 public final String toString() 399 { 400 return "[" + this.getGuard() + "] " + this.getAction(); 401 } 402}