2 * Copyright (C) 2014, United States Government, as represented by the
3 * Administrator of the National Aeronautics and Space Administration.
6 * The Java Pathfinder core (jpf-core) platform is licensed under the
7 * Apache License, Version 2.0 (the "License"); you may not use this file except
8 * in compliance with the License. You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0.
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
20 public abstract class Buffer {
22 protected int position;
23 protected int capacity;
25 protected int mark = -1;
28 // Todo: There exists other missing methods in this class
29 // which may throw NoSuchMethodException errors to users
30 // For example checkBounds has yet to be implemented
31 Buffer(int mark, int pos, int lim, int cap) {
33 throw new IllegalArgumentException("Negative capacity: " + cap);
37 if (mark >= 0 && mark <= pos){
42 public final int capacity() {
46 public final Buffer position(int newPosition) {
47 if ((newPosition<0)||(newPosition>limit)) {
48 throw new IllegalArgumentException("Illegal buffer position exception: "+newPosition);
50 this.position = newPosition;
54 public final int position() {
58 public final int limit() {
62 public final Buffer limit(int newLimit) {
63 if ((newLimit<0)||(newLimit>capacity)) {
64 throw new IllegalArgumentException("Illegal buffer limit exception: "+newLimit);
66 this.limit = newLimit;
70 public final Buffer clear(){
77 public final Buffer flip() {
83 public final Buffer rewind() {
88 public final int remaining() {
89 return limit-position;
92 public final boolean hasRemaining() {
96 public abstract boolean hasArray();
98 public abstract Object array();