001: //
002: // This file is part of the prose package.
003: //
004: // The contents of this file are subject to the Mozilla Public License
005: // Version 1.1 (the "License"); you may not use this file except in
006: // compliance with the License. You may obtain a copy of the License at
007: // http://www.mozilla.org/MPL/
008: //
009: // Software distributed under the License is distributed on an "AS IS" basis,
010: // WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
011: // for the specific language governing rights and limitations under the
012: // License.
013: //
014: // The Original Code is prose.
015: //
016: // The Initial Developer of the Original Code is Andrei Popovici. Portions
017: // created by Andrei Popovici are Copyright (C) 2002 Andrei Popovici.
018: // All Rights Reserved.
019: //
020: // Contributor(s):
021: // $Id: FieldModificationJoinPointImpl.java,v 1.1.1.1 2003/07/02 15:30:50 apopovic Exp $
022: // =====================================================================
023: //
024: // (history at end)
025: //
026:
027: package ch.ethz.inf.iks.jvmai.jvmdi;
028:
029: // used packages/classes
030: import ch.ethz.jvmai.FieldModificationJoinPoint;
031:
032: /**
033: * Class FieldModificationJoinPoint represents a joinpoint where
034: * a field is read.
035: *
036: * @version $Revision: 1.1.1.1 $
037: * @author Andrei Popovici
038: */
039: public class FieldModificationJoinPointImpl extends FieldJoinPointImpl
040: implements FieldModificationJoinPoint {
041:
042: private Integer intNewValue = new Integer(1);
043: private Boolean booleanNewValue = new Boolean(false);
044: private Short shortNewValue = new Short((short) 1);
045: private Float floatNewValue = new Float(1.0);
046: private Double doubleNewValue = new Double(1.0);
047: private Byte byteNewValue = new Byte((byte) 1);
048: private Long longNewValue = new Long(1);
049: private Character charNewValue = new Character('a');
050:
051: protected Object newValue;
052:
053: protected FieldModificationJoinPointImpl(ControlFlow cflow,
054: JoinPointContext ctx) {
055: super (cflow, ctx);
056: }
057:
058: /** Read the new value
059: */
060: public Object getNewValue() {
061: return newValue;
062: }
063:
064: /** set the new value
065: */
066: public void setNewValue(Object newValue) {
067: throw new RuntimeException("not implemented");
068: }
069:
070: /** Return the kind of this join-point
071: */
072: public String getKind() {
073: return FieldModificationJoinPoint.KIND;
074: }
075:
076: public int getMask() {
077: return MASK_CODE_JP | MASK_FIELD_JP
078: | MASK_FIELD_MODIFICATION_JP;
079: }
080:
081: }
082:
083: //======================================================================
084: //
085: // $Log: FieldModificationJoinPointImpl.java,v $
086: // Revision 1.1.1.1 2003/07/02 15:30:50 apopovic
087: // Imported from ETH Zurich
088: //
089: // Revision 1.4 2003/05/05 17:46:25 popovici
090: // Refactorization step (runes->prose) cleanup
091: //
092: // Revision 1.3 2003/04/17 08:47:04 popovici
093: // Important functionality additions
094: // - Cflow specializers
095: // - Restructuring of the MethodCut, SetCut, ExceptionCut, and GetCut (they are much smaller)
096: // - Transactional capabilities
097: // - Total refactoring of Specializer evaluation, which permits fine-grained distinction
098: // between static and dynamic specializers.
099: // - Functionality pulled up in abstract classes
100: // - Uniformization of advice methods patterns and names
101: //
102: // Revision 1.2 2003/03/04 16:09:35 popovici
103: // Documentation improvements
104: //
105: // Revision 1.1 2003/03/04 11:26:35 popovici
106: // Important refactorization step (march):
107: // - removal of 'JoinPointEvents'; JoinPoints now have the same function as events
108: // - reimplementation of the JVMAIDebuggerAspectInterface (better performance, coding conventions, removal of ProseVM
109: // structures
110: //
111: // Revision 1.4 2002/03/28 13:48:25 popovici
112: // Mozilla-ified
113: //
114: // Revision 1.3 2002/02/13 12:24:25 smarkwal
115: // spaces/tabs alignment corrected
116: //
117: // Revision 1.2 2002/01/24 12:46:22 smarkwal
118: // comments added
119: //
120: // Revision 1.1 2001/12/14 15:01:14 smarkwal
121: // Initial Revision
122: //
|