1 /* 2 * Copyright (C) 2016 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.bugreport.util; 18 19 /** 20 * Helper class for parsing command line arguments. 21 */ 22 public class ArgParser { 23 private final String[] mArgs; 24 private int mPos; 25 26 /** 27 * Construct with the arguments from main(String[]). 28 */ ArgParser(String[] args)29 public ArgParser(String[] args) { 30 mArgs = args; 31 } 32 nextFlag()33 public String nextFlag() { 34 if (mPos < mArgs.length) { 35 if (mArgs[mPos].startsWith("--")) { 36 return mArgs[mPos++]; 37 } 38 } 39 return null; 40 } 41 hasData(int count)42 public boolean hasData(int count) { 43 for (int i=mPos; i<mPos+count; i++) { 44 if (i >= mArgs.length) { 45 return false; 46 } 47 if (mArgs[i].startsWith("--")) { 48 return false; 49 } 50 } 51 return true; 52 } 53 nextData()54 public String nextData() { 55 if (mPos < mArgs.length) { 56 return mArgs[mPos++]; 57 } 58 return null; 59 } 60 remaining()61 public int remaining() { 62 return mArgs.length - mPos; 63 } 64 pos()65 public int pos() { 66 return mPos; 67 } 68 } 69