mirror of
https://gitlab.com/arnekeller/kit-programmieren-ws1920-final2.git
synced 2024-11-24 01:15:03 +00:00
Initial commit
This commit is contained in:
commit
63d0af1f00
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
out
|
11
.idea/$PROJECT_FILE$
Normal file
11
.idea/$PROJECT_FILE$
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="AnalysisProjectProfileManager">
|
||||||
|
<option name="PROJECT_PROFILE" />
|
||||||
|
<option name="USE_PROJECT_LEVEL_SETTINGS" value="false" />
|
||||||
|
<list size="0" />
|
||||||
|
</component>
|
||||||
|
<component name="SuppressionsComponent">
|
||||||
|
<option name="suppComments" value="[]" />
|
||||||
|
</component>
|
||||||
|
</project>
|
2
.idea/.gitignore
vendored
Normal file
2
.idea/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Default ignored files
|
||||||
|
/workspace.xml
|
16
.idea/checkstyle-idea.xml
Normal file
16
.idea/checkstyle-idea.xml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="CheckStyle-IDEA">
|
||||||
|
<option name="configuration">
|
||||||
|
<map>
|
||||||
|
<entry key="checkstyle-version" value="8.29" />
|
||||||
|
<entry key="copy-libs" value="false" />
|
||||||
|
<entry key="location-0" value="BUNDLED:(bundled):Sun Checks" />
|
||||||
|
<entry key="location-1" value="BUNDLED:(bundled):Google Checks" />
|
||||||
|
<entry key="scan-before-checkin" value="false" />
|
||||||
|
<entry key="scanscope" value="JavaOnly" />
|
||||||
|
<entry key="suppress-errors" value="false" />
|
||||||
|
</map>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
</project>
|
15
.idea/misc.xml
Normal file
15
.idea/misc.xml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="FindBugsConfigurable">
|
||||||
|
<option name="make" value="true" />
|
||||||
|
<option name="effort" value="default" />
|
||||||
|
<option name="priority" value="Medium" />
|
||||||
|
<option name="excludeFilter" value="" />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK">
|
||||||
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
|
</component>
|
||||||
|
<component name="SuppressionsComponent">
|
||||||
|
<option name="suppComments" value="[]" />
|
||||||
|
</component>
|
||||||
|
</project>
|
8
.idea/modules.xml
Normal file
8
.idea/modules.xml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/final2.iml" filepath="$PROJECT_DIR$/final2.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
465
.idea/qaplug_profiles.xml
Normal file
465
.idea/qaplug_profiles.xml
Normal file
@ -0,0 +1,465 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="AnalysisProjectProfileManager">
|
||||||
|
<option name="PROJECT_PROFILE" value="Project Default" />
|
||||||
|
<option name="USE_PROJECT_LEVEL_SETTINGS" value="false" />
|
||||||
|
<scopes />
|
||||||
|
<profiles>
|
||||||
|
<profile profile_name="Project Default" version="1.0" is_locked="false">
|
||||||
|
<coding_rule class="AM_CREATES_EMPTY_JAR_FILE_ENTRY" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="AM_CREATES_EMPTY_ZIP_FILE_ENTRY" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="BAC_BAD_APPLET_CONSTRUCTOR" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="BC_BAD_CAST_TO_ABSTRACT_COLLECTION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="BC_BAD_CAST_TO_CONCRETE_COLLECTION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BC_IMPOSSIBLE_CAST" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="BC_IMPOSSIBLE_DOWNCAST" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="BC_IMPOSSIBLE_DOWNCAST_OF_TOARRAY" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="BC_IMPOSSIBLE_INSTANCEOF" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BC_UNCONFIRMED_CAST" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BC_UNCONFIRMED_CAST_OF_RETURN_VALUE" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="BC_VACUOUS_INSTANCEOF" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BIT_ADD_OF_SIGNED_BYTE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BIT_AND" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BIT_AND_ZZ" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BIT_IOR" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BIT_IOR_OF_SIGNED_BYTE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BIT_SIGNED_CHECK" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BIT_SIGNED_CHECK_HIGH_BIT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BOA_BADLY_OVERRIDDEN_ADAPTER" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BSHIFT_WRONG_ADD_PRIORITY" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="BX_BOXING_IMMEDIATELY_UNBOXED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="BX_BOXING_IMMEDIATELY_UNBOXED_TO_PERFORM_COERCION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="BX_UNBOXED_AND_COERCED_FOR_TERNARY_OPERATOR" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="BX_UNBOXING_IMMEDIATELY_REBOXED" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="CAA_COVARIANT_ARRAY_ELEMENT_STORE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="CAA_COVARIANT_ARRAY_FIELD" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="CAA_COVARIANT_ARRAY_LOCAL" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="CAA_COVARIANT_ARRAY_RETURN" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="CD_CIRCULAR_DEPENDENCY" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="CI_CONFUSED_INHERITANCE" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="CNT_ROUGH_CONSTANT_VALUE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="CN_IDIOM" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="CN_IDIOM_NO_SUPER_CALL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="CO_ABSTRACT_SELF" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="CO_COMPARETO_INCORRECT_FLOATING" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="CO_COMPARETO_RESULTS_MIN_VALUE" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="CO_SELF_NO_OBJECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DB_DUPLICATE_BRANCHES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DB_DUPLICATE_SWITCH_CLAUSES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DC_DOUBLECHECK" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DC_PARTIALLY_CONSTRUCTED" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="DE_MIGHT_DROP" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DE_MIGHT_IGNORE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DLS_DEAD_LOCAL_INCREMENT_IN_RETURN" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="DLS_DEAD_LOCAL_STORE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DLS_DEAD_LOCAL_STORE_IN_RETURN" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DLS_DEAD_LOCAL_STORE_OF_NULL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DLS_DEAD_LOCAL_STORE_SHADOWS_FIELD" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="DLS_DEAD_STORE_OF_CLASS_LITERAL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DLS_OVERWRITTEN_INCREMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DL_SYNCHRONIZATION_ON_BOOLEAN" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DL_SYNCHRONIZATION_ON_SHARED_CONSTANT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DL_SYNCHRONIZATION_ON_UNSHARED_BOXED_PRIMITIVE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_ANNOTATION_IS_NOT_VISIBLE_TO_REFLECTION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DMI_ARGUMENTS_WRONG_ORDER" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="DMI_BAD_MONTH" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_BIGDECIMAL_CONSTRUCTED_FROM_DOUBLE" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="DMI_BLOCKING_METHODS_ON_URL" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="DMI_CALLING_NEXT_FROM_HASNEXT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_COLLECTIONS_SHOULD_NOT_CONTAIN_THEMSELVES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_COLLECTION_OF_URLS" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="DMI_CONSTANT_DB_PASSWORD" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="DMI_DOH" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="DMI_EMPTY_DB_PASSWORD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_ENTRY_SETS_MAY_REUSE_ENTRY_OBJECTS" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="DMI_FUTILE_ATTEMPT_TO_CHANGE_MAXPOOL_SIZE_OF_SCHEDULED_THREAD_POOL_EXECUTOR" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="DMI_HARDCODED_ABSOLUTE_FILENAME" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_INVOKING_HASHCODE_ON_ARRAY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_INVOKING_TOSTRING_ON_ANONYMOUS_ARRAY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_INVOKING_TOSTRING_ON_ARRAY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_LONG_BITS_TO_DOUBLE_INVOKED_ON_INT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_NONSERIALIZABLE_OBJECT_WRITTEN" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_RANDOM_USED_ONLY_ONCE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_SCHEDULED_THREAD_POOL_EXECUTOR_WITH_ZERO_CORE_THREADS" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="DMI_THREAD_PASSED_WHERE_RUNNABLE_EXPECTED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DMI_UNSUPPORTED_METHOD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DMI_USELESS_SUBSTRING" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_USING_REMOVEALL_TO_CLEAR_COLLECTION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_VACUOUS_CALL_TO_EASYMOCK_METHOD" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="DMI_VACUOUS_SELF_COLLECTION_CALL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DM_BOOLEAN_CTOR" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_BOXED_PRIMITIVE_FOR_COMPARE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="DM_BOXED_PRIMITIVE_FOR_PARSING" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="DM_BOXED_PRIMITIVE_TOSTRING" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_CONVERT_CASE" level="INFO" enabled="true" />
|
||||||
|
<coding_rule class="DM_DEFAULT_ENCODING" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="DM_EXIT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_FP_NUMBER_CTOR" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_GC" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_INVALID_MIN_MAX" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="DM_MONITOR_WAIT_ON_CONDITION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_NEW_FOR_GETCLASS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_NEXTINT_VIA_NEXTDOUBLE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_NUMBER_CTOR" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DM_RUN_FINALIZERS_ON_EXIT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_STRING_CTOR" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_STRING_TOSTRING" level="INFO" enabled="true" />
|
||||||
|
<coding_rule class="DM_STRING_VOID_CTOR" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_USELESS_THREAD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DP_DO_INSIDE_DO_PRIVILEGED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EC_ARRAY_AND_NONARRAY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EC_BAD_ARRAY_COMPARE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EC_INCOMPATIBLE_ARRAY_COMPARE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="EC_NULL_ARG" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EC_UNRELATED_CLASS_AND_INTERFACE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EC_UNRELATED_INTERFACES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EC_UNRELATED_TYPES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EC_UNRELATED_TYPES_USING_POINTER_EQUALITY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EI_EXPOSE_REP" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EI_EXPOSE_REP2" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EI_EXPOSE_STATIC_REP2" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_ABSTRACT_SELF" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_ALWAYS_FALSE" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="EQ_ALWAYS_TRUE" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_COMPARETO_USE_OBJECT_EQUALS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EQ_COMPARING_CLASS_NAMES" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_DOESNT_OVERRIDE_EQUALS" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="EQ_DONT_DEFINE_EQUALS_FOR_ENUM" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_GETCLASS_AND_CLASS_CONSTANT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EQ_OTHER_NO_OBJECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_OTHER_USE_OBJECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_SELF_NO_OBJECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_SELF_USE_OBJECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_UNUSUAL" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="ES_COMPARING_PARAMETER_STRING_WITH_EQ" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="ES_COMPARING_STRINGS_WITH_EQ" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="ESync_EMPTY_SYNC" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="FB_MISSING_EXPECTED_WARNING" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="FB_UNEXPECTED_WARNING" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="FE_FLOATING_POINT_EQUALITY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="FE_TEST_IF_EQUAL_TO_NOT_A_NUMBER" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="FI_EMPTY" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="FI_EXPLICIT_INVOCATION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="FI_FINALIZER_NULLS_FIELDS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="FI_FINALIZER_ONLY_NULLS_FIELDS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="FI_MISSING_SUPER_CALL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="FI_NULLIFY_SUPER" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="FI_PUBLIC_SHOULD_BE_PROTECTED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="FI_USELESS" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="FL_MATH_USING_FLOAT_PRECISION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="GC_UNCHECKED_TYPE_IN_GENERIC_CALL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="GC_UNRELATED_TYPES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="HE_EQUALS_NO_HASHCODE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="HE_EQUALS_USE_HASHCODE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="HE_HASHCODE_NO_EQUALS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="HE_HASHCODE_USE_OBJECT_EQUALS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="HE_INHERITS_EQUALS_USE_HASHCODE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="HE_SIGNATURE_DECLARES_HASHING_OF_UNHASHABLE_CLASS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="HE_USE_OF_UNHASHABLE_CLASS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="HRS_REQUEST_PARAMETER_TO_COOKIE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="HRS_REQUEST_PARAMETER_TO_HTTP_HEADER" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="HSC_HUGE_SHARED_STRING_CONSTANT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IA_AMBIGUOUS_INVOCATION_OF_INHERITED_OR_OUTER_METHOD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="ICAST_BAD_SHIFT_AMOUNT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ICAST_IDIV_CAST_TO_DOUBLE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ICAST_INTEGER_MULTIPLY_CAST_TO_LONG" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ICAST_INT_2_LONG_AS_INSTANT" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="ICAST_INT_CAST_TO_DOUBLE_PASSED_TO_CEIL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ICAST_INT_CAST_TO_FLOAT_PASSED_TO_ROUND" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ICAST_QUESTIONABLE_UNSIGNED_RIGHT_SHIFT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IC_INIT_CIRCULARITY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IC_SUPERCLASS_USES_SUBCLASS_DURING_INITIALIZATION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="IIL_ELEMENTS_GET_LENGTH_IN_LOOP" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="IIL_PATTERN_COMPILE_IN_LOOP" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="IIL_PATTERN_COMPILE_IN_LOOP_INDIRECT" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="IIL_PREPARE_STATEMENT_IN_LOOP" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="IIO_INEFFICIENT_INDEX_OF" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="IIO_INEFFICIENT_LAST_INDEX_OF" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="IJU_ASSERT_METHOD_INVOKED_FROM_RUN_METHOD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IJU_BAD_SUITE_METHOD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IJU_NO_TESTS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IJU_SETUP_NO_SUPER" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IJU_SUITE_NOT_STATIC" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IJU_TEARDOWN_NO_SUPER" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IL_CONTAINER_ADDED_TO_ITSELF" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IL_INFINITE_LOOP" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IL_INFINITE_RECURSIVE_LOOP" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IMA_INEFFICIENT_MEMBER_ACCESS" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="IMSE_DONT_CATCH_IMSE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="IM_AVERAGE_COMPUTATION_COULD_OVERFLOW" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IM_BAD_CHECK_FOR_ODD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IM_MULTIPLYING_RESULT_OF_IREM" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="INT_BAD_COMPARISON_WITH_INT_VALUE" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="INT_BAD_COMPARISON_WITH_NONNEGATIVE_VALUE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="INT_BAD_COMPARISON_WITH_SIGNED_BYTE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="INT_BAD_REM_BY_1" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="INT_VACUOUS_BIT_OPERATION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="INT_VACUOUS_COMPARISON" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IO_APPENDING_TO_OBJECT_OUTPUT_STREAM" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IP_PARAMETER_IS_DEAD_BUT_OVERWRITTEN" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IS2_INCONSISTENT_SYNC" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ISC_INSTANTIATE_STATIC_CLASS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="IS_FIELD_NOT_GUARDED" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ITA_INEFFICIENT_TO_ARRAY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IT_NO_SUCH_ELEMENT" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="J2EE_STORE_OF_NON_SERIALIZABLE_OBJECT_INTO_SESSION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="JCIP_FIELD_ISNT_FINAL_IN_IMMUTABLE_CLASS" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="JLM_JSR166_LOCK_MONITORENTER" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="JLM_JSR166_UTILCONCURRENT_MONITORENTER" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="JML_JSR166_CALLING_WAIT_RATHER_THAN_AWAIT" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="LG_LOST_LOGGER_DUE_TO_WEAK_REFERENCE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="LI_LAZY_INIT_STATIC" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="LI_LAZY_INIT_UPDATE_STATIC" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ME_ENUM_FIELD_SETTER" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="ME_MUTABLE_ENUM_FIELD" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="MF_CLASS_MASKS_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MF_METHOD_MASKS_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="ML_SYNC_ON_UPDATED_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MSF_MUTABLE_SERVLET_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_CANNOT_BE_FINAL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_EXPOSE_REP" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="MS_FINAL_PKGPROTECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_MUTABLE_ARRAY" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_MUTABLE_COLLECTION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="MS_MUTABLE_COLLECTION_PKGPROTECT" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="MS_MUTABLE_HASHTABLE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_OOI_PKGPROTECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_PKGPROTECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_SHOULD_BE_FINAL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_SHOULD_BE_REFACTORED_TO_BE_FINAL" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="MTIA_SUSPECT_SERVLET_INSTANCE_FIELD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="MTIA_SUSPECT_STRUTS_INSTANCE_FIELD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="MWN_MISMATCHED_NOTIFY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="MWN_MISMATCHED_WAIT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NM_BAD_EQUAL" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NM_CLASS_NAMING_CONVENTION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NM_CLASS_NOT_EXCEPTION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_CONFUSING" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_FIELD_NAMING_CONVENTION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NM_FUTURE_KEYWORD_USED_AS_IDENTIFIER" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_FUTURE_KEYWORD_USED_AS_MEMBER_IDENTIFIER" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_LCASE_HASHCODE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NM_LCASE_TOSTRING" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NM_METHOD_CONSTRUCTOR_CONFUSION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_METHOD_NAMING_CONVENTION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NM_SAME_SIMPLE_NAME_AS_INTERFACE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_SAME_SIMPLE_NAME_AS_SUPERCLASS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_VERY_CONFUSING" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_VERY_CONFUSING_INTENTIONAL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_WRONG_PACKAGE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_WRONG_PACKAGE_INTENTIONAL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NN_NAKED_NOTIFY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NOISE_FIELD_REFERENCE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NOISE_METHOD_CALL" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NOISE_NULL_DEREFERENCE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NOISE_OPERATION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NO_NOTIFY_NOT_NOTIFYALL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_ALWAYS_NULL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_ALWAYS_NULL_EXCEPTION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_ARGUMENT_MIGHT_BE_NULL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NP_BOOLEAN_RETURN_NULL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NP_CLONE_COULD_RETURN_NULL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_CLOSING_NULL" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NP_DEREFERENCE_OF_READLINE_VALUE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_GUARANTEED_DEREF" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="NP_GUARANTEED_DEREF_ON_EXCEPTION_PATH" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_IMMEDIATE_DEREFERENCE_OF_READLINE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_LOAD_OF_KNOWN_NULL_VALUE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_METHOD_PARAMETER_TIGHTENS_ANNOTATION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NP_METHOD_RETURN_RELAXING_ANNOTATION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="NP_NONNULL_PARAM_VIOLATION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NONNULL_RETURN_VIOLATION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_INSTANCEOF" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_ON_SOME_PATH" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_ON_SOME_PATH_EXCEPTION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_ON_SOME_PATH_MIGHT_BE_INFEASIBLE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_PARAM_DEREF" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_PARAM_DEREF_NONVIRTUAL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_OPTIONAL_RETURN_NULL" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_STORE_INTO_NONNULL_FIELD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_SYNC_AND_NULL_CHECK_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NP_TOSTRING_COULD_RETURN_NULL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_UNWRITTEN_FIELD" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NP_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="NS_DANGEROUS_NON_SHORT_CIRCUIT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NS_NON_SHORT_CIRCUIT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="OBL_UNSATISFIED_OBLIGATION" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="OBL_UNSATISFIED_OBLIGATION_EXCEPTION_EDGE" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="ODR_OPEN_DATABASE_RESOURCE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ODR_OPEN_DATABASE_RESOURCE_EXCEPTION_PATH" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="OS_OPEN_STREAM" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="OS_OPEN_STREAM_EXCEPTION_PATH" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="PS_PUBLIC_SEMAPHORES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="PT_ABSOLUTE_PATH_TRAVERSAL" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="PT_RELATIVE_PATH_TRAVERSAL" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="PZLA_PREFER_ZERO_LENGTH_ARRAYS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="PZ_DONT_REUSE_ENTRY_OBJECTS_IN_ITERATORS" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="QBA_QUESTIONABLE_BOOLEAN_ASSIGNMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="QF_QUESTIONABLE_FOR_LOOP" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RANGE_ARRAY_INDEX" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="RANGE_ARRAY_LENGTH" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="RANGE_ARRAY_OFFSET" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="RANGE_STRING_INDEX" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="RCN_REDUNDANT_COMPARISON_OF_NULL_AND_NONNULL_VALUE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RCN_REDUNDANT_COMPARISON_TWO_NULL_VALUES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RC_REF_COMPARISON" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RC_REF_COMPARISON_BAD_PRACTICE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="RC_REF_COMPARISON_BAD_PRACTICE_BOOLEAN" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="REC_CATCH_EXCEPTION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="RE_BAD_SYNTAX_FOR_REGULAR_EXPRESSION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RE_CANT_USE_FILE_SEPARATOR_AS_REGULAR_EXPRESSION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RE_POSSIBLE_UNINTENDED_PATTERN" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RI_REDUNDANT_INTERFACES" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="RR_NOT_CHECKED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="RS_READOBJECT_SYNC" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RU_INVOKE_RUN" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="RV_01_TO_INT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="RV_ABSOLUTE_VALUE_OF_HASHCODE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RV_ABSOLUTE_VALUE_OF_RANDOM_INT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RV_CHECK_COMPARETO_FOR_SPECIFIC_RETURN_VALUE" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="RV_CHECK_FOR_POSITIVE_INDEXOF" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="RV_DONT_JUST_NULL_CHECK_READLINE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="RV_EXCEPTION_NOT_THROWN" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RV_NEGATING_RESULT_OF_COMPARETO" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="RV_REM_OF_HASHCODE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RV_REM_OF_RANDOM_INT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RV_RETURN_VALUE_IGNORED" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="RV_RETURN_VALUE_IGNORED_INFERRED" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="RV_RETURN_VALUE_OF_PUTIFABSENT_IGNORED" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="RpC_REPEATED_CONDITIONAL_TEST" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SA_FIELD_DOUBLE_ASSIGNMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SA_FIELD_SELF_ASSIGNMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SA_FIELD_SELF_COMPARISON" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SA_FIELD_SELF_COMPUTATION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SA_LOCAL_DOUBLE_ASSIGNMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SA_LOCAL_SELF_ASSIGNMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SA_LOCAL_SELF_ASSIGNMENT_INSTEAD_OF_FIELD" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="SA_LOCAL_SELF_COMPARISON" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SA_LOCAL_SELF_COMPUTATION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SBSC_USE_STRINGBUFFER_CONCATENATION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SC_START_IN_CTOR" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SE_BAD_FIELD" level="MINOR" enabled="false" />
|
||||||
|
<coding_rule class="SE_BAD_FIELD_INNER_CLASS" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_BAD_FIELD_STORE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_INNER_CLASS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_METHOD_MUST_BE_PRIVATE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_NONFINAL_SERIALVERSIONID" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SE_NONLONG_SERIALVERSIONID" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_NONSTATIC_SERIALVERSIONID" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_NO_SERIALVERSIONID" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_NO_SUITABLE_CONSTRUCTOR" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_NO_SUITABLE_CONSTRUCTOR_FOR_EXTERNALIZATION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_PRIVATE_READ_RESOLVE_NOT_INHERITED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_READ_RESOLVE_IS_STATIC" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_READ_RESOLVE_MUST_RETURN_OBJECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_TRANSIENT_FIELD_NOT_RESTORED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_TRANSIENT_FIELD_OF_NONSERIALIZABLE_CLASS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH_TO_THROW" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="SF_SWITCH_FALLTHROUGH" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="SF_SWITCH_NO_DEFAULT" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="SIC_INNER_SHOULD_BE_STATIC" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SIC_INNER_SHOULD_BE_STATIC_ANON" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SIC_INNER_SHOULD_BE_STATIC_NEEDS_THIS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SIC_THREADLOCAL_DEADLY_EMBRACE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="SIO_SUPERFLUOUS_INSTANCEOF" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SI_INSTANCE_BEFORE_FINALS_ASSIGNED" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SP_SPIN_ON_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SQL_BAD_PREPARED_STATEMENT_ACCESS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SQL_BAD_RESULTSET_ACCESS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SR_NOT_CHECKED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SS_SHOULD_BE_STATIC" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="STCAL_INVOKE_ON_STATIC_CALENDAR_INSTANCE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="STCAL_STATIC_CALENDAR_INSTANCE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="STCAL_STATIC_SIMPLE_DATE_FORMAT_INSTANCE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="STI_INTERRUPTED_ON_CURRENTTHREAD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="STI_INTERRUPTED_ON_UNKNOWNTHREAD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SWL_SLEEP_WITH_LOCK_HELD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SW_SWING_METHODS_INVOKED_IN_SWING_THREAD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="TLW_TWO_LOCK_WAIT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="TQ_ALWAYS_VALUE_USED_WHERE_NEVER_REQUIRED" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="TQ_COMPARING_VALUES_WITH_INCOMPATIBLE_TYPE_QUALIFIERS" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_ALWAYS_SINK" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEVER_SINK" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="TQ_MAYBE_SOURCE_VALUE_REACHES_ALWAYS_SINK" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="TQ_MAYBE_SOURCE_VALUE_REACHES_NEVER_SINK" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="TQ_NEVER_VALUE_USED_WHERE_ALWAYS_REQUIRED" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="TQ_UNKNOWN_VALUE_USED_WHERE_ALWAYS_STRICTLY_REQUIRED" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="UCF_USELESS_CONTROL_FLOW" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="UCF_USELESS_CONTROL_FLOW_NEXT_LINE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="UC_USELESS_CONDITION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UC_USELESS_CONDITION_TYPE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UC_USELESS_OBJECT" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UC_USELESS_OBJECT_STACK" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UC_USELESS_VOID_METHOD" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UG_SYNC_SET_UNSYNC_GET" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="UI_INHERITANCE_UNSAFE_GETRESOURCE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="UL_UNRELEASED_LOCK" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="UL_UNRELEASED_LOCK_EXCEPTION_PATH" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="UM_UNNECESSARY_MATH" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="UPM_UNCALLED_PRIVATE_METHOD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="URF_UNREAD_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="UR_UNINIT_READ" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="USM_USELESS_ABSTRACT_METHOD" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="USM_USELESS_SUBCLASS_METHOD" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UUF_UNUSED_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="UUF_UNUSED_PUBLIC_OR_PROTECTED_FIELD" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UWF_NULL_FIELD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="UWF_UNWRITTEN_FIELD" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UWF_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="UW_UNCOND_WAIT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_BAD_ARGUMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_BAD_CONVERSION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_BAD_CONVERSION_FROM_ARRAY" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_BAD_CONVERSION_TO_BOOLEAN" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_EXPECTED_MESSAGE_FORMAT_SUPPLIED" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_EXTRA_ARGUMENTS_PASSED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_ILLEGAL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_MISSING_ARGUMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_NO_PREVIOUS_ARGUMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_USES_NEWLINE" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="VA_PRIMITIVE_ARRAY_PASSED_TO_OBJECT_VARARG" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="VO_VOLATILE_INCREMENT" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="VO_VOLATILE_REFERENCE_TO_ARRAY" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="VR_UNRESOLVABLE_REFERENCE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="WA_AWAIT_NOT_IN_LOOP" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="WA_NOT_IN_LOOP" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="WL_USING_GETCLASS_RATHER_THAN_CLASS_LITERAL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="WMI_WRONG_MAP_ITERATOR" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="WS_WRITEOBJECT_SYNC" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="XFB_XML_FACTORY_BYPASS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="XSS_REQUEST_PARAMETER_TO_JSP_WRITER" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="XSS_REQUEST_PARAMETER_TO_SEND_ERROR" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="XSS_REQUEST_PARAMETER_TO_SERVLET_WRITER" level="CRITICAL" enabled="true" />
|
||||||
|
</profile>
|
||||||
|
</profiles>
|
||||||
|
<list size="0" />
|
||||||
|
</component>
|
||||||
|
</project>
|
6
.idea/vcs.xml
Normal file
6
.idea/vcs.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
11
final2.iml
Normal file
11
final2.iml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="JAVA_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||||
|
<exclude-output />
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
9
src/edu/kit/informatik/Main.java
Normal file
9
src/edu/kit/informatik/Main.java
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
package edu.kit.informatik;
|
||||||
|
|
||||||
|
import edu.kit.informatik.ui.CommandLine;
|
||||||
|
|
||||||
|
public final class Main {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
CommandLine.startInteractive();
|
||||||
|
}
|
||||||
|
}
|
129
src/edu/kit/informatik/Terminal.java
Normal file
129
src/edu/kit/informatik/Terminal.java
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
package edu.kit.informatik;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.FileReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class provides some simple methods for input/output from and to a terminal as well as a method to read in
|
||||||
|
* files.
|
||||||
|
*
|
||||||
|
* <p><b>Never modify this class, never upload it to Praktomat.</b> This is only for your local use. If an assignment
|
||||||
|
* tells you to use this class for input and output never use System.out, System.err or System.in in the same
|
||||||
|
* assignment.
|
||||||
|
*
|
||||||
|
* @author ITI, VeriAlg Group
|
||||||
|
* @author IPD, SDQ Group
|
||||||
|
* @version 5.03, 2016/05/07
|
||||||
|
*/
|
||||||
|
public final class Terminal {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reads text from the "standard" input stream, buffering characters so as to provide for the efficient reading
|
||||||
|
* of characters, arrays, and lines. This stream is already open and ready to supply input data and corresponds
|
||||||
|
* to keyboard input.
|
||||||
|
*/
|
||||||
|
private static BufferedReader IN = new BufferedReader(new InputStreamReader(System.in));
|
||||||
|
|
||||||
|
public static void reload() {
|
||||||
|
IN = new BufferedReader(new InputStreamReader(System.in));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Private constructor to avoid object generation.
|
||||||
|
*
|
||||||
|
* @deprecated Utility-class constructor.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
private Terminal() {
|
||||||
|
throw new AssertionError("Utility class constructor.");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prints the given error-{@code message} with the prefix "{@code Error, }".
|
||||||
|
*
|
||||||
|
* <p>More specific, this method behaves exactly as if the following code got executed:
|
||||||
|
* <blockquote><pre>
|
||||||
|
* Terminal.printLine("Error, " + message);</pre>
|
||||||
|
* </blockquote>
|
||||||
|
*
|
||||||
|
* @param message the error message to be printed
|
||||||
|
* @see #printLine(Object)
|
||||||
|
*/
|
||||||
|
public static void printError(final String message) {
|
||||||
|
Terminal.printLine("Error, " + message);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prints the string representation of an {@code Object} and then terminate the line.
|
||||||
|
*
|
||||||
|
* <p>If the argument is {@code null}, then the string {@code "null"} is printed, otherwise the object's string
|
||||||
|
* value {@code obj.toString()} is printed.
|
||||||
|
*
|
||||||
|
* @param object the {@code Object} to be printed
|
||||||
|
* @see String#valueOf(Object)
|
||||||
|
*/
|
||||||
|
public static void printLine(final Object object) {
|
||||||
|
System.out.println(object);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prints an array of characters and then terminate the line.
|
||||||
|
*
|
||||||
|
* <p>If the argument is {@code null}, then a {@code NullPointerException} is thrown, otherwise the value of {@code
|
||||||
|
* new String(charArray)} is printed.
|
||||||
|
*
|
||||||
|
* @param charArray an array of chars to be printed
|
||||||
|
* @see String#valueOf(char[])
|
||||||
|
*/
|
||||||
|
public static void printLine(final char[] charArray) {
|
||||||
|
/*
|
||||||
|
* Note: This method's sole purpose is to ensure that the Terminal-class behaves exactly as
|
||||||
|
* System.out regarding output. (System.out.println(char[]) calls String.valueOf(char[])
|
||||||
|
* which itself returns 'new String(char[])' and is therefore the only method that behaves
|
||||||
|
* differently when passing the provided parameter to the System.out.println(Object)
|
||||||
|
* method.)
|
||||||
|
*/
|
||||||
|
System.out.println(charArray);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reads a line of text. A line is considered to be terminated by any one of a line feed ('\n'), a carriage return
|
||||||
|
* ('\r'), or a carriage return followed immediately by a linefeed.
|
||||||
|
*
|
||||||
|
* @return a {@code String} containing the contents of the line, not including any line-termination characters, or
|
||||||
|
* {@code null} if the end of the stream has been reached
|
||||||
|
*/
|
||||||
|
public static String readLine() {
|
||||||
|
try {
|
||||||
|
return IN.readLine();
|
||||||
|
} catch (final IOException e) {
|
||||||
|
/*
|
||||||
|
* The IOException will not occur during tests executed by the praktomat, therefore the
|
||||||
|
* following RuntimeException does not have to get handled.
|
||||||
|
*/
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reads the file with the specified path and returns its content stored in a {@code String} array, whereas the
|
||||||
|
* first array field contains the file's first line, the second field contains the second line, and so on.
|
||||||
|
*
|
||||||
|
* @param path the path of the file to be read
|
||||||
|
* @return the content of the file stored in a {@code String} array
|
||||||
|
*/
|
||||||
|
public static String[] readFile(final String path) {
|
||||||
|
try (final BufferedReader reader = new BufferedReader(new FileReader(path))) {
|
||||||
|
return reader.lines().toArray(String[]::new);
|
||||||
|
} catch (final IOException e) {
|
||||||
|
/*
|
||||||
|
* You can expect that the praktomat exclusively provides valid file-paths. Therefore
|
||||||
|
* there will no IOException occur while reading in files during the tests, the
|
||||||
|
* following RuntimeException does not have to get handled.
|
||||||
|
*/
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
4
src/edu/kit/informatik/model/CardGame.java
Normal file
4
src/edu/kit/informatik/model/CardGame.java
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
package edu.kit.informatik.model;
|
||||||
|
|
||||||
|
public class CardGame {
|
||||||
|
}
|
60
src/edu/kit/informatik/ui/CommandLine.java
Normal file
60
src/edu/kit/informatik/ui/CommandLine.java
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
package edu.kit.informatik.ui;
|
||||||
|
|
||||||
|
import edu.kit.informatik.model.CardGame;
|
||||||
|
import edu.kit.informatik.Terminal;
|
||||||
|
import edu.kit.informatik.ui.command.Command;
|
||||||
|
import edu.kit.informatik.ui.command.CommandFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interactive game runner, gets user inputs and processes commands specified.
|
||||||
|
*
|
||||||
|
* @author Arne Keller
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
public final class CommandLine {
|
||||||
|
/**
|
||||||
|
* Command used to quit the game and terminate the program.
|
||||||
|
*/
|
||||||
|
private static final String QUIT = "quit";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Utility class -> private constructor.
|
||||||
|
*/
|
||||||
|
private CommandLine() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Start a new interactive user session. Returns when standard in is fully processed or user exits.
|
||||||
|
*/
|
||||||
|
public static void startInteractive() {
|
||||||
|
// create a new simulation
|
||||||
|
CardGame simulation = new CardGame();
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
String input = Terminal.readLine();
|
||||||
|
if (input == null) {
|
||||||
|
break; // TODO remove
|
||||||
|
}
|
||||||
|
if (input.startsWith("#")) {
|
||||||
|
continue; // TODO remove
|
||||||
|
}
|
||||||
|
|
||||||
|
if (input.startsWith(QUIT)) {
|
||||||
|
if (input.length() != QUIT.length()) {
|
||||||
|
Terminal.printError("input after quit command");
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
Command command = CommandFactory.getCommand(input);
|
||||||
|
command.apply(simulation);
|
||||||
|
} catch (NumberFormatException | InvalidInputException e) {
|
||||||
|
Terminal.printError(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
7
src/edu/kit/informatik/ui/InvalidInputException.java
Normal file
7
src/edu/kit/informatik/ui/InvalidInputException.java
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
package edu.kit.informatik.ui;
|
||||||
|
|
||||||
|
public class InvalidInputException extends Exception {
|
||||||
|
public InvalidInputException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
16
src/edu/kit/informatik/ui/command/Build.java
Normal file
16
src/edu/kit/informatik/ui/command/Build.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package edu.kit.informatik.ui.command;
|
||||||
|
|
||||||
|
import edu.kit.informatik.model.CardGame;
|
||||||
|
import edu.kit.informatik.ui.InvalidInputException;
|
||||||
|
|
||||||
|
public class Build extends Command {
|
||||||
|
@Override
|
||||||
|
public void apply(CardGame game) throws InvalidInputException {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void parse(String input) throws InvalidInputException {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
16
src/edu/kit/informatik/ui/command/Buildable.java
Normal file
16
src/edu/kit/informatik/ui/command/Buildable.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package edu.kit.informatik.ui.command;
|
||||||
|
|
||||||
|
import edu.kit.informatik.model.CardGame;
|
||||||
|
import edu.kit.informatik.ui.InvalidInputException;
|
||||||
|
|
||||||
|
public class Buildable extends Command {
|
||||||
|
@Override
|
||||||
|
public void apply(CardGame game) throws InvalidInputException {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void parse(String input) throws InvalidInputException {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
27
src/edu/kit/informatik/ui/command/Command.java
Normal file
27
src/edu/kit/informatik/ui/command/Command.java
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
package edu.kit.informatik.ui.command;
|
||||||
|
|
||||||
|
import edu.kit.informatik.model.CardGame;
|
||||||
|
import edu.kit.informatik.ui.InvalidInputException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Command that can be applied to a simulation.
|
||||||
|
* Commands are implemented as separate classes for easy modification and expansion.
|
||||||
|
*
|
||||||
|
* @author Arne Keller
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
public abstract class Command {
|
||||||
|
/**
|
||||||
|
* Apply this command to a game.
|
||||||
|
* @param game game to use
|
||||||
|
* @throws InvalidInputException on invalid user input
|
||||||
|
*/
|
||||||
|
public abstract void apply(CardGame game) throws InvalidInputException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse user input into this command object.
|
||||||
|
* @param input one line of user input
|
||||||
|
* @throws InvalidInputException if user input is in any way invalid
|
||||||
|
*/
|
||||||
|
public abstract void parse(String input) throws InvalidInputException;
|
||||||
|
}
|
62
src/edu/kit/informatik/ui/command/CommandFactory.java
Normal file
62
src/edu/kit/informatik/ui/command/CommandFactory.java
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
package edu.kit.informatik.ui.command;
|
||||||
|
|
||||||
|
import edu.kit.informatik.ui.InvalidInputException;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Factory used to parse user input into commands.
|
||||||
|
*
|
||||||
|
* @author Arne Keller
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
public final class CommandFactory {
|
||||||
|
public static final String START = "start";
|
||||||
|
public static final String DRAW = "draw";
|
||||||
|
public static final String LIST_RESOURCES = "list-resources";
|
||||||
|
public static final String BUILD = "build ";
|
||||||
|
public static final String LIST_BUILDINGS = "list-buildings";
|
||||||
|
public static final String BUILDABLE = "build?";
|
||||||
|
public static final String ROLL_DICE = "rollD";
|
||||||
|
public static final String RESET = "reset";
|
||||||
|
|
||||||
|
private static final Map<String, Supplier<Command>> COMMANDS = new HashMap<>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
// initialize registered commands
|
||||||
|
COMMANDS.put(START, Start::new);
|
||||||
|
COMMANDS.put(DRAW, Draw::new);
|
||||||
|
COMMANDS.put(LIST_RESOURCES, ListResources::new);
|
||||||
|
COMMANDS.put(BUILD, Build::new);
|
||||||
|
COMMANDS.put(LIST_BUILDINGS, ListBuildings::new);
|
||||||
|
COMMANDS.put(BUILDABLE, Buildable::new);
|
||||||
|
COMMANDS.put(ROLL_DICE, RollDice::new);
|
||||||
|
COMMANDS.put(RESET, Reset::new);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Utility class -> private constructor.
|
||||||
|
*/
|
||||||
|
private CommandFactory() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse a single line of user input into one command.
|
||||||
|
* @param input user input line
|
||||||
|
* @return a fully specified command object
|
||||||
|
* @throws InvalidInputException if user input is invalid
|
||||||
|
*/
|
||||||
|
public static Command getCommand(String input) throws InvalidInputException {
|
||||||
|
for (Map.Entry<String, Supplier<Command>> entry : COMMANDS.entrySet()) {
|
||||||
|
if (input.startsWith(entry.getKey())) {
|
||||||
|
Command command = entry.getValue().get();
|
||||||
|
command.parse(input);
|
||||||
|
return command;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new InvalidInputException("unknown command");
|
||||||
|
}
|
||||||
|
}
|
25
src/edu/kit/informatik/ui/command/Draw.java
Normal file
25
src/edu/kit/informatik/ui/command/Draw.java
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package edu.kit.informatik.ui.command;
|
||||||
|
|
||||||
|
import edu.kit.informatik.model.CardGame;
|
||||||
|
import edu.kit.informatik.ui.InvalidInputException;
|
||||||
|
|
||||||
|
public class Draw extends Command {
|
||||||
|
@Override
|
||||||
|
public void apply(CardGame game) throws InvalidInputException {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void parse(String input) throws InvalidInputException {
|
||||||
|
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
Es existieren folgende Fallunterscheidungen:
|
||||||
|
•Wenn sich keine Karte mehr auf dem Stapel befindet bzw. der Befehl in einer nicht für
|
||||||
|
den Befehl vorhergesehenen Spielphase durchgeführt wird, ist dieser Spielzug nicht zulässig.
|
||||||
|
Entsprechend wird eine Fehlermeldung ausgegeben.
|
||||||
|
•Zieht der Spieler eine Karte, so wird der Name der Ressource bzw. der englischsprachige
|
||||||
|
Bezeichner aus den o.g. Kategorien (i) Ressourcen, (ii) Tiere, (iii) Katastrophe ausgegeben.
|
||||||
|
Entsprechend der gezogenen Karte kann sich die Spielphase ändern.
|
||||||
|
*/
|
||||||
|
}
|
16
src/edu/kit/informatik/ui/command/ListBuildings.java
Normal file
16
src/edu/kit/informatik/ui/command/ListBuildings.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package edu.kit.informatik.ui.command;
|
||||||
|
|
||||||
|
import edu.kit.informatik.model.CardGame;
|
||||||
|
import edu.kit.informatik.ui.InvalidInputException;
|
||||||
|
|
||||||
|
public class ListBuildings extends Command {
|
||||||
|
@Override
|
||||||
|
public void apply(CardGame game) throws InvalidInputException {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void parse(String input) throws InvalidInputException {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
25
src/edu/kit/informatik/ui/command/ListResources.java
Normal file
25
src/edu/kit/informatik/ui/command/ListResources.java
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package edu.kit.informatik.ui.command;
|
||||||
|
|
||||||
|
import edu.kit.informatik.model.CardGame;
|
||||||
|
import edu.kit.informatik.ui.InvalidInputException;
|
||||||
|
|
||||||
|
public class ListResources extends Command {
|
||||||
|
@Override
|
||||||
|
public void apply(CardGame game) throws InvalidInputException {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void parse(String input) throws InvalidInputException {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Im Erfolgsfall werden alle aktuell im Besitz befindlichen Ressourcen zeilenweise ausgegeben. Die
|
||||||
|
Ausgabe ist geordnet absteigend nach dem Aufnahmezeitpunkt der Ressourcen. Folglich sind die
|
||||||
|
obersten fünf Ressourcen die, die in der Hütte gesichert werden. Besitzt der Spieler keine Ressourcen,wird
|
||||||
|
EMPTY
|
||||||
|
ausgegeben.Im Fehlerfall (z.B. bei einem fehlerhaften Eingabeformat) wird eine aussagekräftige Fehlermeldung
|
||||||
|
beginnend mitError, ausgegeben
|
||||||
|
*/
|
||||||
|
}
|
16
src/edu/kit/informatik/ui/command/Quit.java
Normal file
16
src/edu/kit/informatik/ui/command/Quit.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package edu.kit.informatik.ui.command;
|
||||||
|
|
||||||
|
import edu.kit.informatik.model.CardGame;
|
||||||
|
import edu.kit.informatik.ui.InvalidInputException;
|
||||||
|
|
||||||
|
public class Quit extends Command {
|
||||||
|
@Override
|
||||||
|
public void apply(CardGame game) throws InvalidInputException {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void parse(String input) throws InvalidInputException {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
16
src/edu/kit/informatik/ui/command/Reset.java
Normal file
16
src/edu/kit/informatik/ui/command/Reset.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package edu.kit.informatik.ui.command;
|
||||||
|
|
||||||
|
import edu.kit.informatik.model.CardGame;
|
||||||
|
import edu.kit.informatik.ui.InvalidInputException;
|
||||||
|
|
||||||
|
public class Reset extends Command {
|
||||||
|
@Override
|
||||||
|
public void apply(CardGame game) throws InvalidInputException {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void parse(String input) throws InvalidInputException {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
16
src/edu/kit/informatik/ui/command/RollDice.java
Normal file
16
src/edu/kit/informatik/ui/command/RollDice.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package edu.kit.informatik.ui.command;
|
||||||
|
|
||||||
|
import edu.kit.informatik.model.CardGame;
|
||||||
|
import edu.kit.informatik.ui.InvalidInputException;
|
||||||
|
|
||||||
|
public class RollDice extends Command {
|
||||||
|
@Override
|
||||||
|
public void apply(CardGame game) throws InvalidInputException {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void parse(String input) throws InvalidInputException {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
32
src/edu/kit/informatik/ui/command/Start.java
Normal file
32
src/edu/kit/informatik/ui/command/Start.java
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
package edu.kit.informatik.ui.command;
|
||||||
|
|
||||||
|
import edu.kit.informatik.model.CardGame;
|
||||||
|
import edu.kit.informatik.ui.InvalidInputException;
|
||||||
|
|
||||||
|
public class Start extends Command {
|
||||||
|
@Override
|
||||||
|
public void apply(CardGame game) throws InvalidInputException {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void parse(String input) throws InvalidInputException {
|
||||||
|
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
Dieser Befehl ermöglicht es dem Benutzer, ein neues Spiel zu starten. Dieser Befehl kann nur
|
||||||
|
dann ausgeführt werden, wenn kein Spiel aktiv ist. Zu jedem Zeitpunkt soll höchstens (den Regeln
|
||||||
|
entsprechend) ein Spiel aktiv sein. Zum Programmstart ist kein Spiel aktiv.
|
||||||
|
Es gibt einen Kartenstapel, von dem der Spieler sukzessiv Karten ziehen kann. Hierbei wird die
|
||||||
|
Reihenfolge der 64 Spielkarten im Stapel festgelegt beginnend mit der oberen aufgelegten Karte.
|
||||||
|
Es werden die englischsprachigen Bezeichner der Spielkarten, wie oben angegeben, verwendet.
|
||||||
|
Die sieben Spielkartenbezeichner (wood,metal,plastic,spider,snake,tiger,thunderstorm)
|
||||||
|
werden bei der Eingabe durch exakt ein Komma getrennt.<cards>repräsentiert in dem hier
|
||||||
|
angegebenen Eingabeformat einen Platzhalter.Eingabeformatstart <cards>
|
||||||
|
Ausgabeformat
|
||||||
|
Falls die Parameter den Spezifikationen entsprochen haben und den Regel entsprechend ein neues
|
||||||
|
Kartenspiel gestartet werden konnte, wirdOKausgegeben. Falls ein oder mehrere falsche Parameter
|
||||||
|
dem Befehl übergeben wurden, wird kein Spiel gestartet und nur eine Fehlermeldung beginnendmit
|
||||||
|
Error,ausgegeben
|
||||||
|
*/
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user