PromptedIO |
|
Log of inspections, incidents, and development notes on the refinement of the com.orcmid.io.PromptedIO portion of the console input-output framework and its services.
|
Status |
Date |
Description |
| 2003-07-12 | Go through all of the IConIO classes and capture the action items that remain to be done. | |
| done in IConIO 0.03 | 2003-07-12 | Correct comment in IConIO so that availability of IConLineIn is described accurately. |
| done in 0.11 | 2003-06-26 | Correct omitted indentation in describeDouble and get the different option cases to work smoothly. |
| done in 0.12 | 2003-07-11 | Correct Prompted IO to have the proper version number in the exceptions |
| 2003-07-11 | Find out if Javac eliminates tail calls or not, just for interest. | |
| 2003-07-11 | The different layers to the console input output need to have Javadoc files. | |
| 2003-07-11 | Created new IConIO and ConIO files to correct the interface inheritance of IConIO. Adjusted some comments. | |
| 2003-06-25 | Create a default constructor for a ConOut class. Check to see why I don't have one already. | |
| 2003-06-25 | Create a log for the ConIO classes and the IConIO classes. | |
| 2003-06-24 | Add notation instructions to describe Integer similar to what I used at first about optional "-" in earlier experiments. | |
| done in 0.10 | 2003-06-24 | Correct printing of range information in describeInteger to use indentation on second line. Add space before output. |
| 2003-06-24 | Correct the descriptive text for validatedDouble | |
| 2003-06-24 | I can save work in the reject cases by using ""+value as a way to convert the value to text using string rules. | |
| 2003-06-24 | Install VSSPlugin (where is that?) and see how it all works. I would like it to very much, though there is not much of a problem at the moment. | |
| done in 0.09 | 2003-06-24 | Make 0.09 with all of the Integer methods, just like the double methods. |
| 2003-06-24 | Use DoubleParse to double-check all of the entries. | |
| done in 0.08 | 2003-06-24 | The filtering of the input text and catching of the no-entry exception seems like a reusable section from promptedDouble. dh:2003-06-24 - Yes, both cleanedText and promptedText are introduced. |
| done in 0.08 | 2003-06-24 | Can we eliminate validatedDouble(text, ...) ? dh:2003-06-24: Yes, it is easy to compose with parsedDouble outside. |
| 2003-06-24 | There still seems to be more refactoring that can be done to cut down on the duplication of parts dealing with parsedDouble() exceptions. dh:2003-06-24: There only seems to be the saving of description effort on the parsedDouble exception, and it is not clear how that can be done effectively. Keep open for now. | |
| 2003-06-24 | Use a quoted string method in the DoubleParse test application as well, taken from the toString() of FullName. | |
| done in 0.08 | 2003-06-24 | Consider making parsedDouble public. dh: Yes. |
| done in 0.08 | 2003-06-24 | It looks like there is room to refactor the handling of failures with badFormat rejections too, on the parseDouble case. I should look at doing all parseDoubles in one place. dh: We have only one. Not clear how to do better. |
| 2003-06-24 | It looks like there is room to share code and harmonize some of the format handling in diagnoseDouble better than is done. dh:2003-06-24 - there is only one place, and it is in diagnoseDouble(text). Look again later. | |
| done in 0.08 | 2003-06-24 | Identify the software and the version in messages of thrown exceptions |
| done in 0.08 | 2003-06-24 | Do not allow null pointers to be fed to parse methods of the Java API |
| 2003-06-24 | Use Javadoc to document this material and also abbreviate the amount of information that is carried in the files. | |
| done in 0.08 | 2003-06-24 | Review the signatures and exception traces in 0.07 to be certain before I add more methods for wrapping up this round of the alpha version. |
| done in 0.08 | 2003-06-24 | Make a private empty string and refer to it. I can probably use a conditional to clean up strings in most places. |
| done | 2003-06-24 | Test Double.parsDouble(null) and find out what it throws. dh: It throws NullPointerException |
| 2003-06-24 | Need to acknowledge the work that Hong BAO and Roderick Parks put into experimenting in this area. | |
| 2003-06-24 | Need to look at Knuth treatment of floating-point issues, the availability of IEEE 754 material, and then finally some way to make tolerances work rationally in the promptedDouble implementation. | |
| done in 0.07 | 2003-06-23 | Allow message texts in the constructor for NoPromptedEntryException |
| done in 0.07 | 2003-06-23 | Make validatedDouble(String, ...) use rejection for both forms of failure. |
| 2003-06-23 | Should I refactor the captioning work into the describeDouble so that the logic stays simpler all the way down? Why not? dh: 2003-06-24 Yes I think this is the place to do it, making it more inviting for other things like that that people do. It looks like I need two flavors of additional operand, with them handled only if caption is present. Do this later. | |
| 2003-06-23 | The rejectString internal procedure should use the string expansion method from the FullName object in DQ3. | |
| done in 0.07 | 2003-06-23 | See if there is a better exception to throw from constructors than IllegalArgumentException. Yes: NullPointerException. |
| done in 0.07 | 2003-06-23 | Protect the constructors against being supplied null interface pointers. |
| done in 0.07 | 2003-06-23 | I need a version of promptedDouble that works with a default value rather than an exception. That is the recommended case, and it is also the most common one for PromptedInteger which typically works with a fixed range. |
| 2003-06-23 | Look at having the IConIO and ConIO package companions accessed via version at some point when using ones from cousin packages. See the PromptIO Constructions section and the instance-global interface references. | |
| 2003-06-23 | promptedInteger should be able to work by using promptedLong internally. | |
| 2003-06-23 | promptedFloat should be able to work by using promptedDouble internally. | |
| done in 0.07 | 2003-06-23 | diagnosedDouble(text) should use diagnosedDouble(double) internally so that number format and value validation provide the cleanest information about what's so. |
| done
in 0.08 2003-06-24 |
2003-06-23 | Prompted IO constructors and the other places where IConIO interfaces are supplied should all be checked for null parameters and defended. Except that I can't use an exception that might be requested. So it would seem NullPointerException is the one to use! dh:2003-06-24 - That's correct, and it is done. |
| 2003-06-23 | diagnosedDouble should use a quoted string (from FullName) for the error message. | |
| done in 0.07 | 2003-06-23 | Use a common procedure to throw IllegalArgumentException from within the double procedures. |
| done
in 0.08 2003-06-24 |
2003-06-23 | Harmonize the different method signatures to provides some rational structure that has a chance of being remembered. |
| done in 0.07 | 2003-06-23 | Validate prompt and indent strings for null, always accepting them. |
| done in 0.06 | 2003-06-23 | Use IllegalArgumentException (which NumberFormatException extends anyhow) as the catchall case for illegal arguments and number format exceptions. |
| 2003-06-23 | orcmid: Based on discussion of Hong BAO approach, and the catch by Patrick Hon, something about in-out preservation may be what is needed along with the tolerance approach. This is now a reason to have tolerance with fixedDouble also. Hmph. Dunno. | |
| done in 0.09 | 2003-06-23 | orcmid: Is it truly the case that static methods cannot be invoked on an instance? dh:2003-06-24. No it's not. It is only if there is no way to make an instance that we must use the class as the route to static methods. But they are present as instance methods just like any others. This means they should be accessible via an interface as well, which is rather nifty. I will need to confirm that separately. |
| done in 0.06 | 2003-06-23 | orcmid: How about a way to just present the conditions required for an input value, possibly as part of a description or help response? Consider a void describeDouble(...) method and is it a static class method? |
| in
0.06 2003-06-23 |
2003-06-21 | orcmid: Do I need a form of acceptedDouble(string) that only displays the echo and value when the value is unacceptable? dh:This is how diagnosedDouble works. It provides a caption and value only if there's an error. |
| in
0.06 2003-06-23 |
2003-06-21 | orcmid: introduce diagnosedDouble(string) case as the one I need internally already that can be part of the response construction for command-line and other separately-obtained string values. |
| not doing | 2003-06-21 | orcmid: Make the NoPromptedEntryException into an internal class, so that it is qualified by the package name. See how well that works. dh:2003-06-24, no we are not doing that at this time. |
| 2003-06-21 | orcmid: Go through the PromptedIO code and bring open items out to this (moved) log. | |
| done | 2003-06-21 | orcmid: Move comments from here to the log for PromptedIO alpha testing and development. |
| 2003-06-21 | orcmid: DQ4_1 does not allow all of the internal exceptions of validateDouble to be thrown and confirmed. Remember to test it separately, maybe with a nice command-line script. | |
| in
0.06 2003-06-23 |
2003-06-21 | orcmid: Should we also support a Double parameter to validatedDouble? |
| done
in 0.08 2003-06-24 |
2003-06-21 | orcmid: Find out what validatedDouble does when given a null pointer for the string case. We want to make sure to get a format exception, so we might want to put in something funny to have it all work. |
| done
in 0.07 2003-06-23 |
2003-06-21 | orcmid: Pass a simple IllegalArgumentException into the PromptedIO-internal call of validatedDouble. |
| 2003-06-21 | orcmid: Complete handling of tolerance inside of PromptedIO.validatedDouble | |
| 2003-06-21 | orcmid: To make tolerance and range handling easy, any NaN as min or max simply makes any input but NaN unacceptable. We're trying to avoid argument exceptions. What will we throw if our input is invalid? | |
| done | 2003-06-21 | orcmid: Don't do the funky PromptedIO business with unsatisfiable min and max values. Just let those through and let the defect be apparent in the output or in the response. We don't need to do this since it will be apparent that there is an error in the program when it refuses to accept any input. |
| 2003-06-21 | orcmid: Review PromptedIO to make sure there are no include dependencies, not even on java.lang. | |
| done | 2003-06-21 | orcmid: Move PromptedIO to a separate Java file for convenience in handling and packaging? I am moving it to the alpha project level, and will continue modifying it there. |
| 2003-06-21 | orcmid: The tolerance cases need to be explained in the announcing of double values. | |
| 2003-06-21 | orcmid: The tolerance cases need to be expanded to deal with the around-zero cases | |
| done
in 0.07 2003-06-23 diagnosedD |
2003-06-21 | orcmid: The refactoring of PromptedIO does need to deal with the forced input, forced explanation, blocked default value, etc. I need a way to provide validatedDouble with no output, announcedDouble. These already have the no-input case handled, since there is no reason to do otherwise. So a null or empty string is a problem. |
| done | 2003-06-08 | See if there is a way to force an IOException by terminating a redirected input file. This is for inInt0 0.05. I discovered that null is returned for all reading at the end-of-file, and there is apparently no IOException that isn't a real error. |
| not done for DQ2.1 | 2003-06-08 | For inInt0 0.04 show the entire build process and directory structures, starting with the source code. I will do this for the DQ2.1 responses, not here. |
| PromptedIO 0.01 2003-06-21 |
2003-06-08 | Can I require that there be no default constructor for Console in inInt0? Or must I defend against stdin and stdout not being initialized. Or should I use System by default? Nice idea. We will go with the latter. |
| done
in 0.09 2003-06-24 |
2003-06-06 | I need a procedure to obtain a clean integer as an input, and in a prompt cycle that works with additional edits done afterwards. So information and prompts come at once. So indenting needs to be handled in some specific way too. Bring back this procedure to inInt0 also. |
| done
in 0.09 2003-06-24 |
2003-06-06 | I need to come up with some kind of prompt class that lets me have input methods be able to reprompt for what they want even if they don't know what it is for. dh:2003-06-23 I am not sure what I intended here, but PromptedIO is providing the necessary methods for use in diagnosing and filtering other inputs. |
|
created 2003-06-21-09:35 -0600 (mdt) by orcmid
|