Full Code of Britooo/looca-api for AI

main 4279ca1fd1f1 cached
34 files
117.4 KB
30.5k tokens
171 symbols
1 requests
Download .txt
Repository: Britooo/looca-api
Branch: main
Commit: 4279ca1fd1f1
Files: 34
Total size: 117.4 KB

Directory structure:
gitextract_xk47aj25/

├── .classpath
├── .gitignore
├── .project
├── .settings/
│   ├── org.eclipse.core.resources.prefs
│   ├── org.eclipse.jdt.apt.core.prefs
│   ├── org.eclipse.jdt.core.prefs
│   └── org.eclipse.m2e.core.prefs
├── .vscode/
│   └── settings.json
├── LICENSE
├── README.md
├── pom.xml
├── pom.xml.versionsBackup
└── src/
    └── main/
        └── java/
            └── com/
                └── github/
                    └── britooo/
                        └── looca/
                            └── api/
                                ├── core/
                                │   └── Looca.java
                                ├── group/
                                │   ├── discos/
                                │   │   ├── Disco.java
                                │   │   ├── DiscoGrupo.java
                                │   │   └── Volume.java
                                │   ├── dispositivos/
                                │   │   ├── DispositivoUsb.java
                                │   │   └── DispositivosUsbGrupo.java
                                │   ├── janelas/
                                │   │   ├── Janela.java
                                │   │   └── JanelaGrupo.java
                                │   ├── memoria/
                                │   │   └── Memoria.java
                                │   ├── processador/
                                │   │   ├── Processador.java
                                │   │   └── ProcessadorCacheLoader.java
                                │   ├── processos/
                                │   │   ├── Processo.java
                                │   │   └── ProcessoGrupo.java
                                │   ├── rede/
                                │   │   ├── Rede.java
                                │   │   ├── RedeInterface.java
                                │   │   ├── RedeInterfaceGroup.java
                                │   │   └── RedeParametros.java
                                │   ├── servicos/
                                │   │   ├── Servico.java
                                │   │   └── ServicoGrupo.java
                                │   ├── sistema/
                                │   │   └── Sistema.java
                                │   └── temperatura/
                                │       └── Temperatura.java
                                └── util/
                                    └── Conversor.java

================================================
FILE CONTENTS
================================================

================================================
FILE: .classpath
================================================
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
	<classpathentry kind="src" output="target/classes" path="src/main/java">
		<attributes>
			<attribute name="optional" value="true"/>
			<attribute name="maven.pomderived" value="true"/>
		</attributes>
	</classpathentry>
	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
		<attributes>
			<attribute name="optional" value="true"/>
			<attribute name="maven.pomderived" value="true"/>
			<attribute name="test" value="true"/>
		</attributes>
	</classpathentry>
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11">
		<attributes>
			<attribute name="maven.pomderived" value="true"/>
		</attributes>
	</classpathentry>
	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
		<attributes>
			<attribute name="maven.pomderived" value="true"/>
		</attributes>
	</classpathentry>
	<classpathentry kind="src" path="target/generated-sources/annotations">
		<attributes>
			<attribute name="optional" value="true"/>
			<attribute name="maven.pomderived" value="true"/>
			<attribute name="ignore_optional_problems" value="true"/>
			<attribute name="m2e-apt" value="true"/>
		</attributes>
	</classpathentry>
	<classpathentry kind="src" output="target/test-classes" path="target/generated-test-sources/test-annotations">
		<attributes>
			<attribute name="optional" value="true"/>
			<attribute name="maven.pomderived" value="true"/>
			<attribute name="ignore_optional_problems" value="true"/>
			<attribute name="m2e-apt" value="true"/>
			<attribute name="test" value="true"/>
		</attributes>
	</classpathentry>
	<classpathentry kind="output" path="target/classes"/>
</classpath>


================================================
FILE: .gitignore
================================================
# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

.idea

*.iml

./target
target/


================================================
FILE: .project
================================================
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
	<name>looca-api</name>
	<comment></comment>
	<projects>
	</projects>
	<buildSpec>
		<buildCommand>
			<name>org.eclipse.jdt.core.javabuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
		<buildCommand>
			<name>org.eclipse.m2e.core.maven2Builder</name>
			<arguments>
			</arguments>
		</buildCommand>
	</buildSpec>
	<natures>
		<nature>org.eclipse.jdt.core.javanature</nature>
		<nature>org.eclipse.m2e.core.maven2Nature</nature>
	</natures>
	<filteredResources>
		<filter>
			<id>1680496548325</id>
			<name></name>
			<type>30</type>
			<matcher>
				<id>org.eclipse.core.resources.regexFilterMatcher</id>
				<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
			</matcher>
		</filter>
	</filteredResources>
</projectDescription>


================================================
FILE: .settings/org.eclipse.core.resources.prefs
================================================
eclipse.preferences.version=1
encoding//src/main/java=UTF-8
encoding//src/test/java=UTF-8
encoding/<project>=UTF-8


================================================
FILE: .settings/org.eclipse.jdt.apt.core.prefs
================================================
eclipse.preferences.version=1
org.eclipse.jdt.apt.aptEnabled=false


================================================
FILE: .settings/org.eclipse.jdt.core.prefs
================================================
eclipse.preferences.version=1
enableParallelJavaIndexSearch=true
org.eclipse.jdt.core.builder.annotationPath.allLocations=disabled
org.eclipse.jdt.core.builder.cleanOutputFolder=clean
org.eclipse.jdt.core.builder.duplicateResourceTask=warning
org.eclipse.jdt.core.builder.invalidClasspath=abort
org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
org.eclipse.jdt.core.circularClasspath=warning
org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
org.eclipse.jdt.core.codeComplete.argumentPrefixes=
org.eclipse.jdt.core.codeComplete.argumentSuffixes=
org.eclipse.jdt.core.codeComplete.camelCaseMatch=enabled
org.eclipse.jdt.core.codeComplete.deprecationCheck=disabled
org.eclipse.jdt.core.codeComplete.discouragedReferenceCheck=disabled
org.eclipse.jdt.core.codeComplete.fieldPrefixes=
org.eclipse.jdt.core.codeComplete.fieldSuffixes=
org.eclipse.jdt.core.codeComplete.forbiddenReferenceCheck=enabled
org.eclipse.jdt.core.codeComplete.forceImplicitQualification=disabled
org.eclipse.jdt.core.codeComplete.localPrefixes=
org.eclipse.jdt.core.codeComplete.localSuffixes=
org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
org.eclipse.jdt.core.codeComplete.subwordMatch=disabled
org.eclipse.jdt.core.codeComplete.suggestStaticImports=enabled
org.eclipse.jdt.core.codeComplete.visibilityCheck=enabled
org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
org.eclipse.jdt.core.compiler.annotation.nonnull=javax.annotation.Nonnull
org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
org.eclipse.jdt.core.compiler.annotation.nullable=javax.annotation.Nullable
org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=enabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.lambda.genericSignature=do not generate
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
org.eclipse.jdt.core.compiler.codegen.shareCommonFinallyBlocks=disabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.doc.comment.support=enabled
org.eclipse.jdt.core.compiler.emulateJavacBug8031744=enabled
org.eclipse.jdt.core.compiler.generateClassFiles=enabled
org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
org.eclipse.jdt.core.compiler.problem.APILeak=warning
org.eclipse.jdt.core.compiler.problem.annotatedTypeArgumentToUnannotated=info
org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
org.eclipse.jdt.core.compiler.problem.deadCode=warning
org.eclipse.jdt.core.compiler.problem.deadCodeInTrivialIfStatement=disabled
org.eclipse.jdt.core.compiler.problem.deprecation=warning
org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=warning
org.eclipse.jdt.core.compiler.problem.nullReference=warning
org.eclipse.jdt.core.compiler.problem.nullSpecViolation=warning
org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
org.eclipse.jdt.core.compiler.problem.overridingMethodWithoutSuperInvocation=ignore
org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
org.eclipse.jdt.core.compiler.problem.suppressWarningsNotFullyAnalysed=info
org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
org.eclipse.jdt.core.compiler.problem.tasks=warning
org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
org.eclipse.jdt.core.compiler.problem.uninternedIdentityComparison=disabled
org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedImport=warning
org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedTypeArgumentsForMethodInvocation=warning
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
org.eclipse.jdt.core.compiler.processAnnotations=disabled
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=11
org.eclipse.jdt.core.compiler.storeAnnotations=disabled
org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
org.eclipse.jdt.core.computeJavaBuildOrder=ignore
org.eclipse.jdt.core.encoding=utf8
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_selector_in_method_invocation_on_expression_first_line=true
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
org.eclipse.jdt.core.formatter.align_with_spaces=false
org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_enum_constant=49
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_field=49
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_local_variable=49
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_method=49
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_package=49
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_parameter=0
org.eclipse.jdt.core.formatter.alignment_for_annotations_on_type=49
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_assertion_message=16
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain=0
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_switch_case_with_arrow=16
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_switch_case_with_colon=16
org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_record_components=16
org.eclipse.jdt.core.formatter.alignment_for_relational_operator=0
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
org.eclipse.jdt.core.formatter.alignment_for_shift_operator=0
org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_record_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_switch_case_with_arrow=20
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
org.eclipse.jdt.core.formatter.alignment_for_type_annotations=0
org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration=0
org.eclipse.jdt.core.formatter.blank_lines_after_package=1
org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method=1
org.eclipse.jdt.core.formatter.blank_lines_before_field=0
org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
org.eclipse.jdt.core.formatter.blank_lines_before_method=1
org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
org.eclipse.jdt.core.formatter.blank_lines_before_package=0
org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch=0
org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_record_constructor=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_record_declaration=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
org.eclipse.jdt.core.formatter.comment.format_block_comments=true
org.eclipse.jdt.core.formatter.comment.format_header=false
org.eclipse.jdt.core.formatter.comment.format_html=true
org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
org.eclipse.jdt.core.formatter.comment.format_line_comments=true
org.eclipse.jdt.core.formatter.comment.format_source_code=true
org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
org.eclipse.jdt.core.formatter.comment.indent_tag_description=false
org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags=do not insert
org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
org.eclipse.jdt.core.formatter.comment.line_length=80
org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
org.eclipse.jdt.core.formatter.compact_else_if=true
org.eclipse.jdt.core.formatter.continuation_indentation=2
org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_record_header=true
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
org.eclipse.jdt.core.formatter.indent_empty_lines=false
org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
org.eclipse.jdt.core.formatter.indentation.size=4
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case=insert
org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default=insert
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_permitted_types=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_record_components=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_not_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_record_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case=insert
org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default=insert
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_record_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_permitted_types=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_record_components=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_constructor=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_record_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
org.eclipse.jdt.core.formatter.join_lines_in_comments=false
org.eclipse.jdt.core.formatter.join_wrapped_lines=false
org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_code_block_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_method_body_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_record_constructor_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_record_declaration_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line=false
org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
org.eclipse.jdt.core.formatter.keep_switch_body_block_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_switch_case_with_arrow_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line=one_line_never
org.eclipse.jdt.core.formatter.lineSplit=120
org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block=0
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block=0
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block=0
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body=0
org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block=0
org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_record_declaration=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
org.eclipse.jdt.core.formatter.tabulation.char=space
org.eclipse.jdt.core.formatter.tabulation.size=2
org.eclipse.jdt.core.formatter.text_block_indentation=0
org.eclipse.jdt.core.formatter.use_on_off_tags=true
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assertion_message_operator=true
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
org.eclipse.jdt.core.formatter.wrap_before_relational_operator=true
org.eclipse.jdt.core.formatter.wrap_before_shift_operator=true
org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
org.eclipse.jdt.core.formatter.wrap_before_switch_case_arrow_operator=false
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
org.eclipse.jdt.core.timeoutForParameterNameFromAttachedJavadoc=50


================================================
FILE: .settings/org.eclipse.m2e.core.prefs
================================================
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1


================================================
FILE: .vscode/settings.json
================================================
{
  "java.configuration.updateBuildConfiguration": "interactive"
}

================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2021 Diego Brito

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: README.md
================================================

[![Looca API](./readme/readmes.gif)]()
# Log of Computer Activity

### **Looca** é uma API que coleta dados de maquina e foi desenvolvida para facilitar o aprendizado em contextos acadêmicos. Esse projeto visa ajudar os alunos da Faculdade [@SPTech](https://github.com/BandTec) em projetos na disciplina de Pesquisa e Inovação.
# 

![Badge](https://img.shields.io/badge/Code-Java-F76911?&logo=java) 
![Badge](https://img.shields.io/badge/compiler-maven-4c9d1flogo=maven)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.github.nyholmniklas/arithmetic/badge.svg)](https://search.maven.org/artifact/com.github.britooo/looca-api)
#
## Instalação
**Adicione no pom.xml**:
```xml
<dependency>
  <groupId>com.github.britooo</groupId>
  <artifactId>looca-api</artifactId>
  <version>--INSIRA A VERSÃO ATUAL--</version>
</dependency>
```

**Execute no terminal (linha de comando):**
```
$ mvn install
```
#
## Uso

**Crie uma instância do objeto Looca:**
```java
Looca looca = new Looca();
```

**Esse objeto disponibiliza os seguintes recursos:**

```java
private final Sistema sistema;
private final Memoria memoria;
private final Processador processador;
private final Temperatura temperatura;
private final DiscoGrupo grupoDeDiscos;
private final ServicoGrupo grupoDeServicos;
private final ProcessoGrupo grupoDeProcessos;
```

**Coletando dados do sistema operacional**

Para coletar os dados da máquina, devemos utilizar os **getters** disponíveis no objeto Looca, por exemplo, para coletar os dados do sistema operacional, utilizamos o **```getSistema()```**, que devolve um objeto do tipo Sistema:


```java
Sistema sistema = looca.getSistema();

```
O objeto Sistema por sua vez, também possui **getters** que devolvem informações do sistema:
```java
sistema.getPermissao();
sistema.getFabricante();
sistema.getArquitetura();
sistema.getInicializado();
sistema.getSistemaOperacional();
```

Para exibir no console as informações do sistema, basta imprimir o objeto:
```java
System.out.println(sistema);
```
Saída do console:
```
Sistema operacional: Ubuntu
Fabricante: GNU/Linux
Arquitetura: 64 bits.
Inicializado: 2021-03-13T16:07:18Z
Tempo de atividade: 3 days, 06:55:53
Permissões:
Executando como usuário padrão
```


**Trabalhando com os grupos**

Para lidar com objetos que retornam mais de uma instância (lista) da informação desejada, utilizamos os grupos, que gerenciam essas informações, para obte-los, utilizamos o **```getGrupoNomeGrupo()```** (Discos, Processos ou Servicos), exemplo:

```java
//Criação do gerenciador
DiscoGrupo grupoDeDiscos = looca.getGrupoDeDiscos();

//Obtendo lista de discos a partir do getter
List<Disco> discos = grupoDeDiscos.getDiscos();
```
Exibindo as informações de cada disco:

```java
for (Disco disco : discos) {
  System.out.println(disco);
}
```

## Desenvolvedores
#
- @Britoo
- @miniguiti

## Licença
#
[MIT](LICENSE) © 2021 Bandtec Digital School


================================================
FILE: pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.github.britooo</groupId>
    <artifactId>looca-api</artifactId>
    <version>2.2.0</version>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

    <name>Log of computer activity - Looca</name>
    <description>API for collecting computer data for educational purposes.</description>
    <url>https://github.com/Britooo/looca-api</url>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>11</source>
                    <target>11</target>
                </configuration>
            </plugin>
            <!--            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>nexus-staging-maven-plugin</artifactId>
                <version>1.6.7</version>
                <extensions>true</extensions>
                <configuration>
                    <serverId>ossrh</serverId>
                    <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                    <autoReleaseAfterClose>true</autoReleaseAfterClose>
                </configuration>
            </plugin>-->
            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>nexus-staging-maven-plugin</artifactId>
                <version>1.6.7</version>
                <extensions>true</extensions>
                <configuration>
                    <serverId>ossrh</serverId>
                    <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
                    <autoReleaseAfterClose>true</autoReleaseAfterClose>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.2.1</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <configuration>
                    <detectJavaApiLink>false</detectJavaApiLink>
                </configuration>
                <version>2.9.1</version>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-gpg-plugin</artifactId>
                <version>1.5</version>
                <executions>
                    <execution>
                        <id>sign-artifacts</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>sign</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <distributionManagement>
        <snapshotRepository>
            <id>ossrh</id>
            <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
    </distributionManagement>

    <!--    <distributionManagement>
        <snapshotRepository>
            <id>ossrh</id>
            <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
        <repository>
            <id>ossrh</id>
            <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
    </distributionManagement>-->

    <licenses>
        <license>
            <name>MIT License</name>
            <url>http://www.opensource.org/licenses/mit-license.php</url>
        </license>
    </licenses>
      
    <developers>
        <developer>
            <name>Diego Brito</name>
            <email>diego.lima@bandtec.com.br</email>
            <organization>com.github.britooo</organization>
            <organizationUrl>https://github.com/Britooo/looca-api</organizationUrl>
        </developer>
    </developers>

    <scm>
        <connection>scm:git:git://github.com/Britooo/looca-api.git</connection>
        <developerConnection>scm:git:ssh://github.com:Britooo/looca-api.git</developerConnection>
        <url>https://github.com/Britooo/looca-api</url>
    </scm>

    <dependencies>
        <!--          https://mvnrepository.com/artifact/com.github.oshi/oshi-core  
        <dependency>
            <groupId>com.github.oshi</groupId>
            <artifactId>oshi-core</artifactId>
            <version>5.3.6</version>
        </dependency>-->
        <!-- https://mvnrepository.com/artifact/com.github.oshi/oshi-core -->
        <dependency>
            <groupId>com.github.oshi</groupId>
            <artifactId>oshi-core</artifactId>
            <version>6.1.5</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>31.1-jre</version>
        </dependency>

        <!--  https://mvnrepository.com/artifact/org.slf4j/slf4j-api  -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.30</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.30</version>
        </dependency>
    </dependencies>
</project>

================================================
FILE: pom.xml.versionsBackup
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.github.britooo</groupId>
    <artifactId>looca-api</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

    <name>Log of computer activity - Looca</name>
    <description>API for collecting computer data for educational purposes.</description>
    <url>https://github.com/Britooo/looca-api</url>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>11</source>
                    <target>11</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>nexus-staging-maven-plugin</artifactId>
                <version>1.6.7</version>
                <extensions>true</extensions>
                <configuration>
                    <serverId>ossrh</serverId>
                    <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                    <autoReleaseAfterClose>true</autoReleaseAfterClose>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.2.1</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <configuration>
                    <detectJavaApiLink>false</detectJavaApiLink>
                </configuration>
                <version>2.9.1</version>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-gpg-plugin</artifactId>
                <version>1.5</version>
                <executions>
                    <execution>
                        <id>sign-artifacts</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>sign</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <distributionManagement>
        <snapshotRepository>
            <id>ossrh</id>
            <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
        <repository>
            <id>ossrh</id>
            <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
    </distributionManagement>

    <licenses>
        <license>
            <name>MIT License</name>
            <url>http://www.opensource.org/licenses/mit-license.php</url>
        </license>
    </licenses>
      
    <developers>
        <developer>
            <name>Diego Brito</name>
            <email>diego.lima@bandtec.com.br</email>
            <organization>com.github.britooo</organization>
            <organizationUrl>https://github.com/Britooo/looca-api</organizationUrl>
        </developer>
    </developers>

    <scm>
        <connection>scm:git:git://github.com/Britooo/looca-api.git</connection>
        <developerConnection>scm:git:ssh://github.com:Britooo/looca-api.git</developerConnection>
        <url>https://github.com/Britooo/looca-api</url>
    </scm>

    <dependencies>
        <!--          https://mvnrepository.com/artifact/com.github.oshi/oshi-core  
        <dependency>
            <groupId>com.github.oshi</groupId>
            <artifactId>oshi-core</artifactId>
            <version>5.3.6</version>
        </dependency>-->
        <!-- https://mvnrepository.com/artifact/com.github.oshi/oshi-core -->
        <dependency>
            <groupId>com.github.oshi</groupId>
            <artifactId>oshi-core</artifactId>
            <version>6.1.5</version>
        </dependency>

        <!--  https://mvnrepository.com/artifact/org.slf4j/slf4j-api  -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.30</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.30</version>
        </dependency>
    </dependencies>
</project>

================================================
FILE: src/main/java/com/github/britooo/looca/api/core/Looca.java
================================================
package com.github.britooo.looca.api.core;

import com.github.britooo.looca.api.group.discos.DiscoGrupo;
import com.github.britooo.looca.api.group.dispositivos.DispositivosUsbGrupo;
import com.github.britooo.looca.api.group.janelas.JanelaGrupo;
import com.github.britooo.looca.api.group.memoria.Memoria;
import com.github.britooo.looca.api.group.processador.Processador;
import com.github.britooo.looca.api.group.processos.ProcessoGrupo;
import com.github.britooo.looca.api.group.rede.Rede;
import com.github.britooo.looca.api.group.servicos.ServicoGrupo;
import com.github.britooo.looca.api.group.sistema.Sistema;
import com.github.britooo.looca.api.group.temperatura.Temperatura;
import oshi.SystemInfo;

public class Looca {

    private final Sistema sistema;
    private final Memoria memoria;
    private final Processador processador;
    private final Temperatura temperatura;
    private final Rede rede;
    private final DiscoGrupo grupoDeDiscos;
    private final ServicoGrupo grupoDeServicos;
    private final ProcessoGrupo grupoDeProcessos;
    private final JanelaGrupo grupoDeJanelas;
    private final DispositivosUsbGrupo grupoDeDispositivosUsb;

    public Looca() {
        SystemInfo si = new SystemInfo();

        this.sistema = new Sistema();
        this.memoria = new Memoria();
        this.processador = new Processador();
        this.temperatura = new Temperatura();
        this.rede = new Rede(si);
        this.grupoDeDiscos = new DiscoGrupo();
        this.grupoDeServicos = new ServicoGrupo();
        this.grupoDeProcessos = new ProcessoGrupo();
        this.grupoDeJanelas = new JanelaGrupo(si);
        this.grupoDeDispositivosUsb = new DispositivosUsbGrupo();
    }

    /**
     * Retorna um <b>Objeto de Sistema</b> que contém métodos relacionados a coleta de informações do <b>Sistema Operacional</b>.
     * @return Objeto Sistema.
     */
    public Sistema getSistema() {
      return sistema;
    }

    /**
     * Retorna um <b>Objeto de Memoria</b> que contém métodos relacionados a coleta de informações da <b>Memória RAM</b>.
     * @return Objeto Memoria.
     */
    public Memoria getMemoria() {
      return memoria;
    }

    /**
     * Retorna um <b>Objeto de Processador</b> que contém métodos relacionados a coleta de informações do <b>Processador</b>.
     * @return Objeto Processador.
     */
    public Processador getProcessador() {
      return processador;
    }

    /**
     * Retorna um <b>Objeto de Temperatura</b> que contém métodos relacionados a coleta de informações de <b>Temperatura</b>.
     * @return Objeto Temperatura.
     */
    public Temperatura getTemperatura() {
      return temperatura;
    }

    /**
     * Retorna um <b>Objeto de DiscoGrupo</b> que contém métodos relacionados a coleta de informações do <b>Grupo de Discos</b>.
     * @return Objeto DiscoGrupo.
     */
    public DiscoGrupo getGrupoDeDiscos() {
      return grupoDeDiscos;
    }

    /**
     * Retorna um <b>Objeto de ServicoGrupo</b> que contém métodos relacionados a coleta de informações do <b>Grupo de Serviços</b>.
     * @return Objeto ServicoGrupo.
     */
    public ServicoGrupo getGrupoDeServicos() {
      return grupoDeServicos;
    }

    /**
     * Retorna um <b>Objeto de ProcessoGrupo</b> que contém métodos relacionados a coleta de informações do <b>Grupo de Processos</b>.
     * @return Objeto ProcessoGrupo.
     */
    public ProcessoGrupo getGrupoDeProcessos() {
      return grupoDeProcessos;
    }

    /**
     * Retorna um <b>Objeto de DispositivosUsbGrupo</b> que contém métodos relacionados a coleta de informações do <b>Grupo de Dispositivos USB</b>.
     * @return Objeto DispositivosUsbGrupo.
     */
    public DispositivosUsbGrupo getDispositivosUsbGrupo() {
        return grupoDeDispositivosUsb;
    }

    /**
     * Retorna um <b>Objeto de Rede</b> que contém métodos relacionados a coleta de informações de <b>Rede</b>.
     * @return Objeto Rede.
     */
    public Rede getRede() {
        return rede;
    }

    /**
     * Retorna um <b>Objeto de JanelaGrupo</b> que contém métodos relacionados a coleta de informações do
     * <b>Grupo de Janelas</b> do computador.
     * @return Objeto Rede.
     */
    public JanelaGrupo getGrupoDeJanelas() {
        return grupoDeJanelas;
    }
}


================================================
FILE: src/main/java/com/github/britooo/looca/api/group/discos/Disco.java
================================================
package com.github.britooo.looca.api.group.discos;

import oshi.hardware.HWDiskStore;

public class Disco {

  private final HWDiskStore disco;

  public Disco(HWDiskStore disco) {
    this.disco = disco;
  }

  /**
   * Retorna o <b>nome</b> do disco.
   *
   * @return Nome do disco.
   */
  public String getNome() {
    return disco.getName();
  }

  /**
   * Retorna o <b>modelo</b> do disco.
   *
   * @return Modelo do disco.
   */
  public String getModelo() {
    return disco.getModel();
  }

  /**
   * Retorna o <b>número do serial</b> do disco, <b>se disponível</b>.
   *
   * @return Número serial do disco, se disponível.
   */
  public String getSerial() {
    return disco.getSerial();
  }

  /**
   * Retorna o <b>tamanho</b> do disco em <b>bytes</b>.
   *
   * @return Tamanho do disco em <b>bytes</b>.
   */
  public Long getTamanho() {
    return disco.getSize();
  }

  /**
   * Retorna o <b>número de leituras</b> do disco.
   *
   * @return Número de leituras do disco.
   */
  public Long getLeituras() {
    return disco.getReads();
  }

  /**
   * Retorna o <b>número de bytes lidos</b> pelo disco.
   *
   * @return Número de bytes lidos pelo disco.
   */
  public Long getBytesDeLeitura() {
    return disco.getReadBytes();
  }

  /**
   * Retorna o <b>número de escritas</b> no disco.
   *
   * @return Número de escritas no disco.
   */
  public Long getEscritas() {
    return disco.getWrites();
  }

  /**
   * Retorna o <b>número de bytes escritos</b> no disco.
   *
   * @return Número de bytes escritos no disco.
   */
  public Long getBytesDeEscritas() {
    return disco.getWriteBytes();
  }

  /**
   * <p>Retorna o <b>comprimento da fila</b> de disco (E/S's em andamento).</p>
   * <br>
   * <p>Inclui solicitações de E/S que foram emitidas para o driver de dispositivo,
   * mas ainda não foram concluídas. <b>Não compatível com macOS</b>.</p>
   *
   * @return Comprimento da fila de disco (E/S's em andamento).
   */
  public Long getTamanhoAtualDaFila() {
    return disco.getCurrentQueueLength();
  }

  /**
   * Retorna o <b>tempo gasto lendo ou escrevendo</b> no disco, em <b>milissegundos</b>.
   *
   * @return Tempo gasto lendo ou escrevendo no disco, em <b>milissegundos</b>.
   */

  public Long getTempoDeTransferencia() {
    return disco.getTransferTime();
  }


  /**
   * Retorna uma <code>String</code> com todas as informações relacionadas ao <b>Disco</b>.
   * @return <code>String</code> com todas as informações relacionadas ao <b>Disco</b>.
   */
  @Override
  public String toString() {

    StringBuilder sb = new StringBuilder();

    sb.append("\nNome: ")
        .append(getNome())
        .append("\n");

    sb.append("Modelo: ")
        .append(getModelo())
        .append("\n");

    sb.append("Serial: ")
        .append(getSerial())
        .append("\n");

    sb.append("Tamanho: ")
        .append(getTamanho())
        .append("\n");

    sb.append("Leituras: ")
        .append(getLeituras())
        .append("\n");

    sb.append("Bytes de leitura: ")
        .append(getBytesDeLeitura())
        .append("\n");

    sb.append("Escritas: ")
        .append(getEscritas())
        .append("\n");

    sb.append("Bytes de escritas: ")
        .append(getBytesDeEscritas())
        .append("\n");

    sb.append("Tamanho atual da fila: ")
        .append(getTamanhoAtualDaFila())
        .append("\n");

    sb.append("Tempo de transferência: ")
        .append(getTempoDeTransferencia())
        .append("\n");

    return sb.toString();
  }
}


================================================
FILE: src/main/java/com/github/britooo/looca/api/group/discos/DiscoGrupo.java
================================================
package com.github.britooo.looca.api.group.discos;

import java.util.List;
import java.util.stream.Collectors;

import oshi.SystemInfo;
import oshi.hardware.HWDiskStore;
import oshi.hardware.HardwareAbstractionLayer;
import oshi.software.os.OSFileStore;
import oshi.software.os.OperatingSystem;

public class DiscoGrupo {

  private final SystemInfo system = new SystemInfo();
  private final OperatingSystem os = system.getOperatingSystem();
  private final HardwareAbstractionLayer hal = system.getHardware();

  /**
   * Retorna uma <b>lista de <code>Volume</code></b>.
   *
   * @return Lista de Volume.
   */
  public List<Volume> getVolumes() {
    return this.os.getFileSystem()
        .getFileStores()
        .stream()
        .map(DiscoGrupo::of)
        .collect(Collectors.toList());
  }

  /**
   * Retorna uma <b>lista de <code>Disco</code></b>.
   *
   * @return Lista de Disco.
   */
  public List<Disco> getDiscos() {
    return this.hal.getDiskStores().stream()
        .map(DiscoGrupo::of)
        .collect(Collectors.toList());
  }

  /**
   * Retorna o <b>tamanho dos discos somados</b> em <b>bytes</b>.
   *
   * @return Tamanho dos discos somados em <b>bytes</b>.
   */
  public Long getTamanhoTotal() {
    return this.getDiscos().stream()
        .mapToLong(Disco::getTamanho).sum();
  }

  /**
   * Retorna a <b>quantidade de discos existentes</b> citados na lista de discos <b>(Contagem total de discos)</b>.
   *
   * @return Soma total de discos.
   */
  public Integer getQuantidadeDeDiscos() {
    return this.getDiscos().size();
  }

  /**
   * Retorna a <b>quantidade de volumes existentes</b> citados na lista de volumes <b>(Contagem total de volumes)</b>.
   *
   * @return Soma total de volumes.
   */
  public Integer getQuantidadeDeVolumes() {
    return this.getVolumes().size();
  }

  private static Volume of(OSFileStore volume) {
    if (volume == null) {
      return null;
    }
    return new Volume(volume);
  }

  private static Disco of(HWDiskStore disco) {
    if (disco == null) {
      return null;
    }
    return new Disco(disco);
  }

}


================================================
FILE: src/main/java/com/github/britooo/looca/api/group/discos/Volume.java
================================================
package com.github.britooo.looca.api.group.discos;

import oshi.software.os.OSFileStore;

public class Volume {

  private final OSFileStore volume;

  public Volume(OSFileStore volume) {
    this.volume = volume;
  }


  /**
   * Retorna o <b>UUID/GUID</b> do sistema de arquivos.
   *
   * @return UUID/GUID do sistema de arquivos.
   */
  public String getUUID() {
    return this.volume.getUUID();
  }

  /**
   * <p>
   *  Nome do sistema de arquivos. Um identificador legível que não necessariamente corresponde
   *  a um caminho no sistema de arquivos.
   * </p>
   * 
   * @return Nome do sistema de arquivos
   */
  public String getNome() {
    return this.volume.getName();
  }

  /**
   * <p>
   *  Nome do volume do sistema de arquivos. Geralmente um caminho que representa o dispositivo
   *  (ex: /dev/foo) que foi montado.
   * </p>
   * 
   * @return Nome do volume do sistema de arquivos
   */
  public String getVolume() {
    return this.volume.getVolume();
  }

  /**
   * <b>Retorna espaço/capacidade total da unidade (Em bytes).</b>
   *
   * @return Espaço/capacidade total da unidade <b>(Em bytes)</b>.
   */
  public Long getTotal() {
    return this.volume.getTotalSpace();
  }

  /**
   * <p>Retorna o <b>espaço livre</b> na unidade.</p>
   * <br>
   * <p>Esse espaço não é alocado, mas pode exigir permissões elevadas para gravação <b>(Em bytes)</b>.</p>
   *
   * @return Espaço livre na unidade <b>(Em bytes)</b>.
   */
  public Long getDisponivel() {
    return this.volume.getFreeSpace();
  }

  /**
   * Retorna o tipo do <b>sistema de arquivos</b> <i>(FAT, NTFS, etx2, ext4, etc...)</i>.
   *
   * @return sistema de arquivos (FAT, NTFS, etx2, ext4, etc...).
   */
  public String getTipo() {
    return this.volume.getType();
  }

  /**
   * <p>Retorna o <b>ponto de montagem</b> do sistema de arquivos.</p>
   * <br>
   * <p>O diretório que os usuários normalmente usarão para interagir com o armazenamento de arquivos.
   * <i>(Exemplo C: no Windows ou / no Linux)</i>.</p>
   *
   * @return Ponto de montagem do sistema de arquivos.
   */
  public String getPontoDeMontagem() {
    return this.volume.getMount();
  }


  /**
   * Retorna uma <code>String</code> com todas as informações relacionadas ao <b>Volume</b>.
   * @return <code>String</code> com todas as informações relacionadas ao <b>Volume</b>.
   */
  @Override
  public String toString() {

    StringBuilder str = new StringBuilder();

    str.append("UUID: ").append(this.getUUID()).append("\n");
    str.append("nome: ").append(this.getNome()).append("\n");
    str.append("volume: ").append(this.getVolume()).append("\n");
    str.append("total: ").append(this.getTotal()).append("\n");
    str.append("disponível: ").append(this.getDisponivel()).append("\n");
    str.append("tipo: ").append(this.getTipo()).append("\n");
    str.append("ponto de montagem: ").append(this.getPontoDeMontagem()).append("\n");


    return str.toString();
  }
}


================================================
FILE: src/main/java/com/github/britooo/looca/api/group/dispositivos/DispositivoUsb.java
================================================
package com.github.britooo.looca.api.group.dispositivos;

import oshi.hardware.UsbDevice;

public class DispositivoUsb {

    private final UsbDevice usbDevice;

    /**
     * Retorna o <b>nome do dispositivo</b>.
     *
     * @return Nome do dispositivo.
     */
    public String getNome() {
        return usbDevice.getName();
    }

    /**
     * Retorna o <b>identificador do produto</b>.
     *
     * @return O identificador do produto.
     */
    public String getIdProduto() {
        return usbDevice.getProductId();
    }

    /**
     * Retorna o <b>numero de serie</b>.
     *
     * @return O número de série.
     */
    public String getNumeroDeSerie() {
        return usbDevice.getSerialNumber();
    }


    /**
     * Retorna o <b>identificador exclusivo do dispositivo</b>.
     *
     * @return O identificador exclusivo do dispositivo.
     */
    public String getIdDispositivoUsbExclusivo() {
        return usbDevice.getUniqueDeviceId();
    }

    /**
     * Retorna o <b>nome do fornecedor</b> identificado no dispositivo.
     *
     * @return O nome do fornecedor.
     */
    public String getForncecedor() {
        return usbDevice.getVendor();
    }

    /**
     * Retorna o <b>identificador do fornecedor</b>.
     *
     * @return O identificador do fornecedor.
     */
    public String getIdFornecedor() {
        return usbDevice.getVendorId();
    }

    public DispositivoUsb(UsbDevice usbDevice) {
        this.usbDevice = usbDevice;
    }

    @Override
    public String toString() {
        return String.format("\nNome: %s\nId produto: %s\nNúmero de série: %s\nId de dispositivo exclusivo: %s\nFornecedor: %s\nId fornecedor: %s\n",
        getNome(), getIdProduto(), getNumeroDeSerie(), getIdDispositivoUsbExclusivo(), getForncecedor(), getIdFornecedor());
    }
}


================================================
FILE: src/main/java/com/github/britooo/looca/api/group/dispositivos/DispositivosUsbGrupo.java
================================================
package com.github.britooo.looca.api.group.dispositivos;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

import oshi.SystemInfo;
import oshi.hardware.HardwareAbstractionLayer;
import oshi.hardware.UsbDevice;

public class DispositivosUsbGrupo {

    private final HardwareAbstractionLayer hardwareAbstractionLayer = new SystemInfo().getHardware();

    /**
     * Retorna o número de <b>dispositivos USB</b>.
     *
     * @return Número de dispositivos identificados como USB.
     */
    public Integer getTotalDispositvosUsb() {
        int totalDispositivosConectados = 0;

        for(UsbDevice item : this.hardwareAbstractionLayer.getUsbDevices(false)) {
            totalDispositivosConectados += item.getConnectedDevices().size();
        }

        return totalDispositivosConectados;
    }

    /**
     * Retorna o número de <b>dispositivos USB conectados</b>.
     *
     * @return Número de dispositivos conectados identificados como USB.
     */
    public Integer getTotalDispositvosUsbConectados() {
        int totalDispositivosConectados = 0;

        for(UsbDevice item : this.hardwareAbstractionLayer.getUsbDevices(true)) {
            totalDispositivosConectados += item.getConnectedDevices().size();
        }

        return totalDispositivosConectados;
    }

    /**
     * Retorna os <b>dispositivos USB</b>.
     *
     * @return Dispositivos identificados como USB.
     */

    public List<DispositivoUsb> getDispositivosUsb() {
        List<DispositivoUsb> dispositivoUsbList = new ArrayList<>();

        for(UsbDevice item : this.hardwareAbstractionLayer.getUsbDevices(false)) {
                dispositivoUsbList.add(DispositivosUsbGrupo.of(item));
        }

        return dispositivoUsbList;
    }

    /**
     * Retorna os <b>dispositivos USB conectados</b>.
     *
     * @return Dispositivos conectados identificados como USB.
     */
    public List<DispositivoUsb> getDispositivosUsbConectados() {
        List<DispositivoUsb> dispositivoUsbList = new ArrayList<>();

        for(UsbDevice item : this.hardwareAbstractionLayer.getUsbDevices(true)) {
            for (UsbDevice usbDevice : item.getConnectedDevices()) {
                dispositivoUsbList.add(DispositivosUsbGrupo.of(usbDevice));
            }
        }

        return dispositivoUsbList;
    }
    
    private static DispositivoUsb of(UsbDevice usbDevice) {
        if (usbDevice == null) {
            return null;
        }
        
        return new DispositivoUsb(usbDevice);
    }
}



================================================
FILE: src/main/java/com/github/britooo/looca/api/group/janelas/Janela.java
================================================
package com.github.britooo.looca.api.group.janelas;

import oshi.software.os.OSDesktopWindow;

import java.awt.*;

public class Janela {

  private final OSDesktopWindow janela;

  public Janela(OSDesktopWindow janela) {
    this.janela = janela;
  }

  public static Janela of(OSDesktopWindow janela) {
    if (janela == null) {
      return null;
    }

    return new Janela(janela);
  }

  /**
   * Retorna o <b>ID do processo</b> do qual essa janela pertence.
   *
   * @return ID do processo.
   */
  public Long getPid() {
    return this.janela.getOwningProcessId();
  }

  /**
   * Retorna o identificador do sistema operacional, ID da janela ou outro identificador exclusivo para esta janela.
   *
   * @return Identificador da janela.
   */
  public Long getJanelaId() {
    return this.janela.getWindowId();
  }

  /**
   * Retorna o <b>título da janela</b> se existir.
   *
   * @return Título da janela.
   */
  public String getTitulo() {
    return this.janela.getTitle();
  }

  /**
   * Retorna o <b>nome do comando</b> (possivelmente o caminho completo do arquivo) do programa executável da janela,
   * se conhecido.
   *
   * @return Comando do programa executável ou caminho do arquivo executável.
   */
  public String getComando() {
    return this.janela.getCommand();
  }

  /**
   * Retorna um <b>Objeto {@link Rectangle}</b> que representa a localização e o tamanho da janela.
   *
   * @return Localização e tamanho da janela.
   * @see Rectangle
   */
  public Rectangle getLocalizacaoETamanho() {
    return this.janela.getLocAndSize();
  }

  /**
   * Retorna se a janela está visível para o usuário.
   *
   * @return <code>true</code> se a janela está visível para o usuário, caso contrário <code>false</code>.
   */
  public Boolean isVisivel() {
    return this.janela.isVisible();
  }

  @Override
  public String toString() {
    final StringBuilder sb = new StringBuilder("\n");
    sb.append("PID: ").append(getPid()).append("\n");
    sb.append("Id da janela: ").append(getJanelaId()).append("\n");
    sb.append("Título: ").append(getTitulo()).append("\n");
    sb.append("Comando: ").append(getComando()).append("\n");
    sb.append("Localização: ").append(getLocalizacaoETamanho()).append("\n");
    sb.append("Visível: ").append(isVisivel()).append("\n");
    return sb.toString();
  }
}


================================================
FILE: src/main/java/com/github/britooo/looca/api/group/janelas/JanelaGrupo.java
================================================
package com.github.britooo.looca.api.group.janelas;

import oshi.SystemInfo;
import oshi.software.os.OperatingSystem;

import java.util.List;
import java.util.stream.Collectors;

public class JanelaGrupo {

  private final OperatingSystem so;

  public JanelaGrupo(SystemInfo si) {
    this.so = si.getOperatingSystem();
  }

  /**
   * Retorna uma lista de <b>Janelas</b> visíveis e invisíveis abertas no sistema operacional.
   *
   * @return Lista de janelas.
   */
  public List<Janela> getJanelas() {
    return so.getDesktopWindows(false).stream()
        .map(Janela::of)
        .collect(Collectors.toList());
  }

  /**
   * Retorna uma lista de <b>Janelas</b>, apenas com as janelas visíveis no sistema operacional.
   *
   * @return Lista de janelas.
   */
  public List<Janela> getJanelasVisiveis() {
    return so.getDesktopWindows(true).stream()
        .map(Janela::of)
        .collect(Collectors.toList());
  }

  /**
   * Retorna a quantidade total de <b>Janelas</b> visíveis e invisíveis no sistema operacional.
   *
   * @return Total de janelas.
   */
  public Integer getTotalJanelas() {
    return so.getDesktopWindows(false).size();
  }

  /**
   * Retorna a quantidade total de <b>Janelas</b> visíveis no sistema operacional.
   *
   * @return Total de janelas.
   */
  public Integer getTotalJanelasVisiveis() {
    return so.getDesktopWindows(true).size();
  }
}


================================================
FILE: src/main/java/com/github/britooo/looca/api/group/memoria/Memoria.java
================================================
package com.github.britooo.looca.api.group.memoria;

import oshi.SystemInfo;
import oshi.hardware.HardwareAbstractionLayer;
import com.github.britooo.looca.api.util.Conversor;

public class Memoria {


  private final HardwareAbstractionLayer hardware = new SystemInfo().getHardware();

  /**
   * Retorna a quantidade de <b>memória física</b> atualmente <b>disponível</b>, <b>em bytes</b>.
   *
   * @return Quantidade de memória física atualmente disponível, <b>em bytes</b>.
   */
  public Long getDisponivel() {
    return this.hardware.getMemory().getAvailable();
  }

  /**
   * Retorna a quantidade de <b>memória física real</b>, <b>em bytes</b>.
   *
   * @return Quantidade de memória física real, <b>em bytes</b>.
   */
  public Long getTotal() {
    return this.hardware.getMemory().getTotal();
  }

  /**
   * Retorna a quantidade de <b>memória em uso</b>, <b>em bytes</b>.
   *
   * @return Quantidade de memória em uso, <b>em bytes</b>.
   */
  public Long getEmUso() {
    return this.getTotal() - this.getDisponivel();
  }

  /**
   * Retorna uma <code>String</code> com todas as informações relacionadas a <b>Memória</b>.
   * @return <code>String</code> com todas as informações relacionadas a <b>Memória</b>.
   */
  @Override
  public String toString() {

    final StringBuilder sb = new StringBuilder("Memoria").append("\n");

    sb.append("Em uso: ")
        .append(Conversor.formatarBytes(getEmUso()))
        .append("\n");

    sb.append("Disponível: ")
        .append(Conversor.formatarBytes(getDisponivel()))
        .append("\n");

    sb.append("Total: ")
        .append(Conversor.formatarBytes(getTotal()))
        .append("\n");

    return sb.toString();
  }

}


================================================
FILE: src/main/java/com/github/britooo/looca/api/group/processador/Processador.java
================================================
package com.github.britooo.looca.api.group.processador;

import oshi.SystemInfo;
import oshi.hardware.CentralProcessor;

public class Processador {


  private final CentralProcessor processador = new SystemInfo().getHardware().getProcessor();
  private final ProcessadorCacheLoader processadorCacheLoader = new ProcessadorCacheLoader();

  /**
   * Retorna o nome do Fornecedor do processador.
   *
   * @return Nome do Fornecedor do processador.
   */
  public String getFabricante() {
    return this.processador.getProcessorIdentifier().getVendor();
  }

  /**
   * Retorna o <b>nome do Processador</b> <i>(Exemplo: Name, eg. Intel(R) Core(TM)2 Duo CPU T7300 @ 2.00GHz)</i>.
   *
   * @return Nome do Processador.
   */
  public String getNome() {
    return this.processador.getProcessorIdentifier().getName();
  }

  /**
   * <p>Retorna o <b>ID do processador</b>.</p>
   * <br>
   * <p>Esta é uma <code>String</code> hexadecimal representando um valor de 8 bytes,
   * normalmente obtido usando o opcode CPUID com o registrador EAX definido como 1.
   * Os primeiros quatro bytes são o conteúdo resultante do registrador EAX,
   * que é a assinatura do processador, representada em legível por humanos.
   * Os quatro bytes restantes são o conteúdo do registrador EDX, contendo sinalizadores de recursos.
   * Para processadores que não suportam o opcode CPUID,
   * este campo é preenchido com uma <code>String</code> hexadecimal comparável.
   * <p>Por exemplo, os processadores ARM preencherão os primeiros 32 bytes com o MIDR.
   * Os processadores AIX PowerPC retornarão o ID da máquina.</p>
   * <br>
   * <p><b>NOTA: A ordem dos bytes retornados depende da plataforma e do software.
   * Os valores podem estar na ordem Big Endian ou Little Endian.</b></p>
   * <br>
   * <p><b>NOTA: Se o Looca não conseguir determinar o ProcessorID a partir de fontes nativas,
   * ele tentará reconstruir um a partir das informações disponíveis no identificador do processador.</b></p>
   *
   * @return ID do processador.
   */
  public String getId() {
    return this.processador.getProcessorIdentifier().getProcessorID();
  }

  /**
   * Retorna o <b>identificador</b>, <i>por exemplo: Família x86 6 Modelo 15 Etapa 10.</i>
   * Para processadores diferentes de <b>Intel</b> ou <b>AMD</b>, essa <code>String</code> é preenchida com valores comparáveis.
   *
   * @return Identificador.
   */
  public String getIdentificador() {
    return this.processador.getProcessorIdentifier().getIdentifier();
  }

  /**
   * Retorna a <b>microarquitetura</b> do processador, <b>se conhecida</b>.
   * Caso contrário retorna a constante: <code>Constant.UNKNOWN</code>
   *
   * @return Microarquitetura do processador.
   */
  public String getMicroarquitetura() {
    return this.processador.getProcessorIdentifier().getMicroarchitecture();
  }

  /**
   * Retorna a <b>frequência</b> do processador <b>(em Hz)</b>, por exemplo.
   * Para o processador denominado <i>Intel(R) Core(TM)2 Duo CPU T7300 @ 2,00 GHz</i>,
   * a frequência do processador é 2000000000hz.
   * Caso a frequência do processador seja <b>desconhecido retorna -1</b>;
   *
   * @return Frequência do processador.
   */
  public Long getFrequencia() {
    return this.processador.getProcessorIdentifier().getVendorFreq();
  }

  /**
   * Retorna o número de <b>pacotes/soquetes</b> no sistema.
   * Um único pacote pode conter vários núcleos.
   *
   * @return Número de pacotes físicos disponíveis.
   */
  public Integer getNumeroPacotesFisicos() {
    return this.processador.getPhysicalPackageCount();
  }

  /**
   * Retorna o número de <b>CPUs/núcleos físicos disponíveis</b> para processamento.
   *
   * @return Número de CPUs físicas disponíveis.
   */
  public Integer getNumeroCpusFisicas() {
    return this.processador.getPhysicalProcessorCount();
  }

  /**
   * Retorna o número de <b>CPUs lógicas disponíveis</b> para processamento.
   * Este valor pode ser <b>maior do que CPUs físicas</b> se o hyperthreading estiver habilitado.
   *
   * @return Número de CPUs lógicas disponíveis.
   */
  public Integer getNumeroCpusLogicas() {
    return this.processador.getLogicalProcessorCount();
  }

  /**
   * <p>Retorna a porcentagem de <b>uso do processador</b>, por meio dos contadores de ticks de carga de CPU em todo o sistema.</p>
   * <br>
   * <p>
   * Por meio de  um array com oito elementos representando milissegundos gastos nos estados:
   * User (0), Nice (1), System (2), Idle (3), IOwait (4), Hardware interrupts (IRQ) (5),
   * Software interrupts/DPC (SoftIRQ) ) (6) ou Steal (7).</p>
   * <br>
   * <p>Ao medir a diferença entre os ticks em um intervalo de tempo,
   * a carga da CPU nesse intervalo pode ser calculada.
   * Observe que, embora os contadores de tiques estejam em unidades de milissegundos,
   * eles podem avançar em incrementos maiores junto com tiques de clock (dependentes da plataforma).
   * Por exemplo, por padrão, os tiques do clock do Windows são 1/64 de segundo (cerca de 15 ou 16 milissegundos) e os tiques do Linux dependem da distribuição e da configuração,
   * mas geralmente 1/100 de segundo (10 milissegundos).</p>
   * <br>
   * <p>As informações de Nice e IOWait não estão disponíveis no Windows,
   * e as informações de IOwait e IRQ não estão disponíveis no macOS, portanto,
   * esses ticks sempre serão zero.</p>
   * <br>
   * <p>Para calcular o tempo de inatividade geral usando esse método,
   * inclua os tiques de inatividade e IOWait. Da mesma forma, os ticks de IRQ,
   * SoftIRQ e Steal devem ser adicionados ao valor do sistema para obter o total.
   * Os tiques do sistema também incluem o tempo de execução de outros hosts virtuais (steal).</p>
   * <br>
   * <p>Com isso fazemos o cálculo necessário para a medição em porcentagem do uso do processador.</p>
   *
   * @return Valor em porcentagem de uso do processador.
   */
  public Double getUso() {
    return this.processadorCacheLoader.getUso();
  }

  /**
   * Retorna uma <code>String</code> com todas as informações relacionadas ao <b>Processador</b>.
   * @return <code>String</code> com todas as informações relacionadas ao <b>Processador</b>.
   */
  @Override
  public String toString() {
    final StringBuilder sb = new StringBuilder();

    sb.append("Fabricante: ")
        .append(getFabricante())
        .append("\n");

    sb.append("Nome: ")
        .append(getNome())
        .append("\n");

    sb.append("ID: ")
        .append(getId())
        .append("\n");

    sb.append("Identificador: ")
        .append(getIdentificador())
        .append("\n");

    sb.append("Microarquitetura: ")
        .append(getMicroarquitetura())
        .append("\n");

    sb.append("Frequência: ")
        .append(getFrequencia())
        .append("\n");

    sb.append("Número de Pacotes Físicos: ")
        .append(getNumeroPacotesFisicos())
        .append("\n");

    sb.append("Número de CPUs Fisícas: ")
        .append(getNumeroCpusFisicas())
        .append("\n");

    sb.append("Número de CPUs Lógicas: ")
        .append(getNumeroCpusLogicas())
        .append("\n");

    sb.append("Em Uso: ")
        .append(String.format("%.1f", getUso()))
        .append("\n");

    return sb.toString();
  }

}


================================================
FILE: src/main/java/com/github/britooo/looca/api/group/processador/ProcessadorCacheLoader.java
================================================
package com.github.britooo.looca.api.group.processador;

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;

import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListenableFutureTask;
import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.common.util.concurrent.MoreExecutors;

import oshi.SystemInfo;
import oshi.hardware.CentralProcessor;

public class ProcessadorCacheLoader {

  private final ExecutorService executor = Executors.newSingleThreadExecutor();
  private final ListeningExecutorService lExecutor = MoreExecutors.listeningDecorator(executor);
  private final CentralProcessor processador = new SystemInfo().getHardware().getProcessor();

  private final LoadingCache<String, Double> loader;

  public ProcessadorCacheLoader() {
    loader = CacheBuilder.newBuilder()
        .maximumSize(1000)
        .refreshAfterWrite(1000, TimeUnit.MILLISECONDS)
        .build(new CacheLoader<String, Double>() {
          @Override
          public Double load(String key) throws Exception {
            return loadUso();
          }

          @Override
          public ListenableFuture<Double> reload(String key, Double oldValue) throws Exception {
            return getUsoOshi();
          }
        });
  }

  /**
   * Retorna <b>uso</b> do processador em <b>procentagem</b>.
   * @return Uso do processador em <b>procentagem</b>.
   */
  public Double getUso() {
    try {
      return loader.get("uso");
    } catch (ExecutionException e) {
      e.printStackTrace();
      return 0.0;
    }
  }

  private Double loadUso() {
    Double resultado = 0.0;
    Future<Double> uso = getUsoOshi();

    try {
      while (!uso.isDone()) {
        TimeUnit.SECONDS.sleep(2);
      }
      resultado = uso.get();
    } catch (InterruptedException e) {
      e.printStackTrace();
    } catch (ExecutionException e) {
      e.printStackTrace();
    }
    return resultado;
  }

  private ListenableFuture<Double> getUsoOshi() {
    long[] prevTicks = this.processador.getSystemCpuLoadTicks();

    ListenableFutureTask<Double> task = ListenableFutureTask.create(new Callable<Double>() {
      public Double call() throws InterruptedException {
        TimeUnit.SECONDS.sleep(1);
        return processador.getSystemCpuLoadBetweenTicks(prevTicks) * 100;
      }
    });

    lExecutor.execute(task);
    return task;
  }
}


================================================
FILE: src/main/java/com/github/britooo/looca/api/group/processos/Processo.java
================================================
package com.github.britooo.looca.api.group.processos;

import oshi.software.os.OSProcess;
import com.github.britooo.looca.api.group.memoria.Memoria;

public class Processo {


  private final OSProcess processo;
  private final Memoria memoria;

  public Processo(OSProcess processo, Memoria memoria) {
    this.processo = processo;
    this.memoria = memoria;
  }

  /**
   * <p>Retorna o <b>ID do processo</b>.</p>
   * <br>
   * <p>Embora seja um valor de 32 bits, ele não é assinado no Windows e,
   * em circunstâncias extremamente raras, pode retornar um valor negativo.</p>
   *
   * @return ID do processo.
   */
  public Integer getPid() {
    return this.processo.getProcessID();
  }

  /**
   * Retorna o <b>nome do processo</b>, geralmente o programa executável.
   *
   * @return Nome do processo, geralmente o programa executável.
   */
  public String getNome() {
    return this.processo.getName();
  }

  /**
   * <p>Retorna o valor percentual de <b>uso da CPU pelo processo</b>.</p>
   * <br>
   * <p>
   * Por meio do cálculo: (100d * (o número de milissegundos que o processo executou no modo kernel/sistema.
   * +
   * Obtém o tempo do usuário usado pelo processo.)
   * /
   * o número de milissegundos desde o início do processo).
   * Assim conseguimos a porcentagem do uso de CPU pelo processo.
   * </p>
   *
   * @return Valor percentual de uso da CPU pelo processo.
   */
  public Double getUsoCpu() {
    return (100d * (processo.getKernelTime() + processo.getUserTime()) / processo.getUpTime());
  }

  /**
   * <p>Retorna no <b>Windows</b> o tamanho do Conjunto de Trabalho Privado, que deve corresponder à coluna "Memória" no Gerenciador de Tarefas do Windows.</p>
   * <p>Retorna no <b>Linux</b> o valor RSS de /proc/[pid]/stat, que pode ser impreciso devido a uma otimização de escalabilidade interna do kernel. Se forem necessários valores precisos, leia /proc/[pid]/smaps usando <code>FileUtil.getKeyValueMapFromFile(String, String)</code>.</p>
   * <br>
   * <p>E por meio do cálculo: (100d * Obtém o tamanho do conjunto residente (RSS). Usado para mostrar quanta memória está alocada para esse processo e está na RAM. Não inclui memória que é trocada. Inclui memória de bibliotecas compartilhadas, desde que as páginas dessas bibliotecas estejam realmente na memória. Inclui toda a memória de pilha e heap.
   * Retorna (o tamanho do conjunto residente / A quantidade de memória física real, em bytes).</p>
   *
   * @return Valor percentual de uso da Memória RAM pelo processo.
   */
  public Double getUsoMemoria() {
    return (100d * processo.getResidentSetSize() / memoria.getTotal());
  }

  /**
   * <p>Retorna o tamanho do conjunto residente (RSS). Usado para mostrar quanta memória está alocada para esse processo e está na RAM.</p>
   * <br>
   * <p>Não inclui memória que é trocada. Inclui memória de bibliotecas compartilhadas,
   * desde que as páginas dessas bibliotecas estejam realmente na memória.
   * Inclui toda a memória de pilha e heap.
   * No <b>Windows</b>, retorna o tamanho do Conjunto de Trabalho Privado,
   * que deve corresponder à coluna "Memória" no Gerenciador de Tarefas do Windows.</p>
   * <br>
   * <p>
   * No <b>Linux</b>, retorna o valor RSS de /proc/[pid]/stat,
   * que pode ser impreciso devido a uma otimização de escalabilidade interna do kernel.
   * Se forem necessários valores precisos, leia /proc/[pid]/smaps usando
   * <code>FileUtil.getKeyValueMapFromFile(String, String)</code>.
   * </p>
   *
   * @return Tamanho do conjunto residente (ou Quantidade de <b>bytes</b> utilizados).
   */
  public Long getBytesUtilizados() {
    return processo.getResidentSetSize();
  }

  /**
   * <p>Retorna o <b>tamanho da memória virtual (VSZ)</b>.</p>
   * <br>
   * <p>Inclui toda a memória que o processo pode acessar,
   * incluindo memória que é trocada e memória que é de bibliotecas compartilhadas.</p>
   *
   * @return Tamanho da memória virtual.
   */
  public Long getMemoriaVirtualUtilizada() {
    return processo.getVirtualSize();
  }

  /**
   * Retorna uma <code>String</code> com todas as informações relacionadas ao <b>Processo</b>.
   * @return <code>String</code> com todas as informações relacionadas ao <b>Grupo de Processos</b>.
   */
  @Override
  public String toString() {

    final StringBuilder sb = new StringBuilder();

    sb.append("PID: ").append(getPid())
        .append("\n");

    sb.append("Uso CPU: ")
        .append(String.format("%.1f", getUsoCpu()))
        .append("\n");

    sb.append("Uso memória: ")
        .append(String.format("%.1f", getUsoMemoria()))
        .append("\n");

    sb.append("Bytes utilizados: ")
        .append(getBytesUtilizados())
        .append("\n");

    sb.append("Memória virtual utilizada: ")
        .append(getMemoriaVirtualUtilizada())
        .append("\n");

    return sb.toString();
  }

}


================================================
FILE: src/main/java/com/github/britooo/looca/api/group/processos/ProcessoGrupo.java
================================================
package com.github.britooo.looca.api.group.processos;

import java.util.List;

import oshi.SystemInfo;
import oshi.software.os.OSProcess;

import java.util.stream.Collectors;

import oshi.software.os.OperatingSystem;
import com.github.britooo.looca.api.group.memoria.Memoria;

public class ProcessoGrupo {

  private final OperatingSystem os = new SystemInfo().getOperatingSystem();

  /**
   * Retorna o número de <b>threads em execução</b>.
   *
   * @return Número de threads em execução.
   */
  public Integer getTotalThreads() {
    return this.os.getThreadCount();
  }

  /**
   * Retorna o número de <b>processos em execução</b>.
   *
   * @return Número de processos em execução.
   */
  public Integer getTotalProcessos() {
    return this.os.getProcessCount();
  }

  /**
   * <p>Retorna os <b>processos em execução no momento</b>. Nenhum pedido é garantido.</p>
   * <br>
   * <p>Sendo uma lista de objetos <code>OSProcess</code> para o número especificado (ou todos) de processos atualmente em execução,
   * classificados conforme especificado.
   * A lista pode conter elementos nulos ou processos com estado <code>OSProcess.State.INVALID</code> se um processo for encerrado durante a iteração.</p>
   *
   * @return Lista com os processos em execução no momento. Nenhum pedido é garantido.
   */
  public List<Processo> getProcessos() {
    return this.os.getProcesses()
        .stream()
        .map(ProcessoGrupo::of)
        .collect(Collectors.toList());
  }

  private static Processo of(OSProcess processo) {
    if (processo == null) {
      return null;
    }
    Memoria memoria = new Memoria();
    return new Processo(processo, memoria);
  }

  /**
   * Retorna uma <code>String</code> com todas as informações relacionadas ao <b>Grupo de Processos</b>.
   * @return <code>String</code> com todas as informações relacionadas ao <b>Grupo de Processos</b>.
   */
  @Override
  public String toString() {
    return String.format("\nLista de processos\nTotal de processos ativos: %d\nTotal de threads: %d\nProcessos: %s",
        this.getTotalProcessos(), this.getTotalThreads(), this.getProcessos());
  }
}


================================================
FILE: src/main/java/com/github/britooo/looca/api/group/rede/Rede.java
================================================
package com.github.britooo.looca.api.group.rede;

import oshi.SystemInfo;

public class Rede {

  private final SystemInfo si;

  public Rede(SystemInfo si) {
    this.si = si;
  }

  /**
   * Retorna um <b>Objeto de RedeInterfaceGroup</b> que contém métodos relacionados a coleta de informações de
   * <b>Interfaces de Rede</b> físicas e virtuais disponíveis para uso no computador.
   * @return Objeto RedeInterfaceGroup.
   */
  public RedeInterfaceGroup getGrupoDeInterfaces() {
    return new RedeInterfaceGroup(si);
  }

  /**
   * Retorna um <b>Objeto de RedeParametros</b> que contém métodos relacionados a coleta de informações
   * de <b>Parâmetros de Rede</b> do sistema operacional como username e domínio.
   * @return Objeto RedeParametros.
   */
  public RedeParametros getParametros() {
    return new RedeParametros(si);
  }
}


================================================
FILE: src/main/java/com/github/britooo/looca/api/group/rede/RedeInterface.java
================================================
package com.github.britooo.looca.api.group.rede;

import oshi.hardware.NetworkIF;

import java.util.Arrays;
import java.util.List;

public class RedeInterface {

  private final NetworkIF redeInterface;

  public RedeInterface(NetworkIF redeInterface) {
    this.redeInterface = redeInterface;
  }

  public static RedeInterface of(NetworkIF redeInterface) {
    if (redeInterface == null) {
      return null;
    }

    return new RedeInterface(redeInterface);
  }

  /**
   * Retorna o <b>nome</b> da interface de rede.
   *
   * @return Nome da interface de rede.
   */
  public String getNome() {
    return this.redeInterface.getName();
  }

  /**
   * Retorna a <b>descrição</b> da interface de rede.
   *
   * @return Descrição da interface.
   */
  public String getNomeExibicao() {
    return this.redeInterface.getDisplayName();
  }

  /**
   * Retorna uma lista com os <b>endereços de IP (v4)</b> relacionados com essa interface de rede.
   *
   * @return Lista de endereços de IP
   */
  public List<String> getEnderecoIpv4() {
    return Arrays.asList(this.redeInterface.getIPv4addr());
  }

  /**
   * Retorna uma lista com os <b>endereços de IP (v6)</b> relacionados com essa interface de rede.
   *
   * @return Lista de endereços de IP
   */
  public List<String> getEnderecoIpv6() {
    return Arrays.asList(this.redeInterface.getIPv6addr());
  }

  /**
   * Retorna o <b>endereço MAC</b> da interface de rede.
   *
   * @return MAC address.
   */
  public String getEnderecoMac() {
    return this.redeInterface.getMacaddr();
  }

  /**
   * Retorna o total de <b>bytes recebidos</b> pela interface de rede.
   *
   * @return Total de bytes recebidos
   */
  public Long getBytesRecebidos() {
    this.redeInterface.updateAttributes();
    return this.redeInterface.getBytesRecv();
  }

  /**
   * Retorna o total de <b>bytes enviados</b> pela interface de rede.
   *
   * @return Total de bytes enviados
   */
  public Long getBytesEnviados() {
    this.redeInterface.updateAttributes();
    return this.redeInterface.getBytesSent();
  }

  /**
   * Retorna o total de <b>pacotes recebidos</b> pela interface de rede.
   *
   * @return Total de pacotes recebidos
   */
  public Long getPacotesRecebidos() {
    return this.redeInterface.getPacketsRecv();
  }

  /**
   * Retorna o total de <b>pacotes enviados</b> pela interface de rede.
   *
   * @return Total de pacotes enviados
   */
  public Long getPacotesEnviados() {
    return this.redeInterface.getPacketsSent();
  }

  @Override
  public String toString() {
    final StringBuilder sb = new StringBuilder("\n");
    sb.append("Nome: ").append(getNome()).append("\n");
    sb.append("Nome de Exibição: ").append(getNomeExibicao()).append("\n");
    sb.append("Endereço IPv4: ").append(getEnderecoIpv4()).append("\n");
    sb.append("Endereço IPv6: ").append(getEnderecoIpv6()).append("\n");
    sb.append("Endereço MAC: ").append(getEnderecoMac()).append("\n");
    sb.append("Bytes recebidos: ").append(getBytesRecebidos()).append("\n");
    sb.append("Bytes enviados: ").append(getBytesEnviados()).append("\n");
    sb.append("Pacotes recebidos: ").append(getPacotesRecebidos()).append("\n");
    sb.append("Pacotes enviados: ").append(getPacotesEnviados()).append("\n");
    return sb.toString();
  }
}


================================================
FILE: src/main/java/com/github/britooo/looca/api/group/rede/RedeInterfaceGroup.java
================================================
package com.github.britooo.looca.api.group.rede;

import oshi.SystemInfo;
import oshi.hardware.HardwareAbstractionLayer;

import java.util.List;
import java.util.stream.Collectors;

public class RedeInterfaceGroup {

  private final HardwareAbstractionLayer hal;

  public RedeInterfaceGroup(SystemInfo si) {
    this.hal = si.getHardware();
  }

  /**
   * Retorna uma lista de <b>Interfaces de Rede</b> disponíveis.
   *
   * @return Lista de interfaces de rede.
   */
  public List<RedeInterface> getInterfaces() {
    return this.hal.getNetworkIFs().stream()
        .map(RedeInterface::of)
        .collect(Collectors.toList());
  }
}


================================================
FILE: src/main/java/com/github/britooo/looca/api/group/rede/RedeParametros.java
================================================
package com.github.britooo.looca.api.group.rede;

import oshi.SystemInfo;
import oshi.software.os.NetworkParams;

import java.util.Arrays;
import java.util.List;

public class RedeParametros {

  private final NetworkParams parametrosRede;

  public RedeParametros(SystemInfo si) {
    this.parametrosRede = si.getOperatingSystem().getNetworkParams();
  }

  /**
   * Retorna o <b>hostname</b> do computador.
   *
   * @return Hostname.
   */
  public String getHostName() {
    return this.parametrosRede.getHostName();
  }

  /**
   * Retorna o <b>nome de domínio</b> do computador.
   *
   * @return Nome de domínio.
   */
  public String getNomeDeDominio() {
    return this.parametrosRede.getDomainName();
  }

  /**
   * Retorna uma lista de <b>IPs</b> dos <b>servidores DNS</b> disponíveis.
   *
   * @return IPs dos servidores DNS.
   */
  public List<String> getServidoresDns() {
    return Arrays.asList(this.parametrosRede.getDnsServers());
  }

  @Override
  public String toString() {
    final StringBuilder sb = new StringBuilder("\n");
    sb.append("Hostname: ").append(getHostName()).append("\n");
    sb.append("Nome de domínio: ").append(getNomeDeDominio()).append("\n");
    sb.append("Servidores DNS: ").append(getServidoresDns()).append("\n");
    return sb.toString();
  }
}


================================================
FILE: src/main/java/com/github/britooo/looca/api/group/servicos/Servico.java
================================================
package com.github.britooo.looca.api.group.servicos;

import oshi.software.os.OSService;

public class Servico {

  private final OSService servico;

  public Servico(OSService servico) {
    this.servico = servico;
  }

  /**
   * Obtém o <b>ID do processo atual</b>.
   * 
   * @return ID do processo.
   */
  public Integer getPid() {
    return this.servico.getProcessID();
  }

  /**
   * Retorna o <b>nome do serviço</b>.
   * 
   * @return Nome do serviço.
   */
  public String getNome() {
    return this.servico.getName();
  }

  /**
   * <p>
   *  Retorna o <b>estado do serviço</b>.
   * </p>
   * 
   * Ex: <code>STOPPED</code>, <code>RUNNING</code>.
   * 
   * @return Estado do serviço.
   */
  public String getEstado() {
    return this.servico.getState().toString();
  }

  /**
   * Retorna uma <code>String</code> com todas as informações relacionadas ao <b>Serviço</b>.
   * @return <code>String</code> com todas as informações relacionadas ao <b>Serviço</b>.
   */
  @Override
  public String toString() {

    final StringBuilder sb = new StringBuilder();

    sb.append("PID: ")
        .append(getPid())
        .append("\n");

    sb.append("Nome: ")
        .append(getNome())
        .append("\n");

    sb.append("Estado: ")
        .append(getEstado())
        .append("\n");

    return sb.toString();
  }
}


================================================
FILE: src/main/java/com/github/britooo/looca/api/group/servicos/ServicoGrupo.java
================================================
package com.github.britooo.looca.api.group.servicos;

import java.util.List;

import oshi.SystemInfo;

import java.util.stream.Collectors;

import oshi.software.os.OSService;

public class ServicoGrupo {

  enum STATUS {
    RUNNING,
    STOPPED
  }

  private final SystemInfo sistema = new SystemInfo();

  /**
   * Devolve uma lista com todos os serviços
   *
   * @return Lista com todos os serviços
   */
  public List<Servico> getServicos() {
    return recuperarServicosOshi().stream().map(ServicoGrupo::of).collect(Collectors.toList());
  }

  /**
   * Retorna a quantidade de serviços
   *
   * @return Quantidade de serviços
   */
  public Integer getTotalDeServicos() {
    return this.getServicos().size();
  }

  /**
   * Lista todos os serviços cujo o status é <code>RUNNING</code> (ou em execução)
   *
   * @return Lista de serviços ativos
   */
  public List<Servico> getServicosAtivos() {
    return this.getServicos().stream()
        .filter(servico -> servico.getEstado()
            .equals(STATUS.RUNNING.toString()))
        .collect(Collectors.toList());
  }

  /**
   * Retorna a quantidade de serviços em execução
   *
   * @return Quantidade de serviços em execução
   */
  public Integer getTotalServicosAtivos() {
    return this.getServicosAtivos().size();
  }

  /**
   * Lista todos os serviços cujo o status é <code>STOPPED</code> (ou inativo)
   *
   * @return Lista de serviços inativos
   */
  public List<Servico> getServicosInativos() {
    return this.getServicos().stream()
        .filter(servico -> servico.getEstado()
            .equals(STATUS.STOPPED.toString()))
        .collect(Collectors.toList());
  }

  /**
   * Retorna a quantidade de <b>serviços inativos</b>.
   *
   * @return Quantidade de serviços inativos.
   */
  public Integer getTotalServicosInativos() {
    return this.getServicosInativos().size();
  }

  private List<OSService> recuperarServicosOshi() {
    return this.sistema.getOperatingSystem().getServices();
  }

  private static Servico of(OSService servico) {
    if (servico == null) {
      return null;
    }

    return new Servico(servico);
  }
}


================================================
FILE: src/main/java/com/github/britooo/looca/api/group/sistema/Sistema.java
================================================
package com.github.britooo.looca.api.group.sistema;

import oshi.SystemInfo;

import java.time.Instant;

import oshi.software.os.OperatingSystem;
import com.github.britooo.looca.api.util.Conversor;

public class Sistema {

  private final OperatingSystem os;
  private final String fabricante;
  private final Integer arquitetura;
  private final String sistemaOperacional;

  public Sistema() {
    os = new SystemInfo().getOperatingSystem();
    this.arquitetura = this.os.getBitness();
    this.fabricante = this.os.getManufacturer();
    this.sistemaOperacional = this.os.getFamily();
  }

  /**
   * Retorna o <b>Sistema Operacional</b>.
   *
   * @return Sistema Operacional.
   */
  public String getSistemaOperacional() {
    return sistemaOperacional;
  }

  /**
   * Retorna a <b>empresa fabricante</b> do sistema operacional.
   *
   * @return Fabricante do sitema operacional.
   */
  public String getFabricante() {
    return fabricante;
  }

  /**
   * Retorna o número de <b>bits</b> <i>(32 ou 64)</i> do sistema operacional.
   *
   * @return Número de <b>bits</b> do sistema operacional.
   */
  public Integer getArquitetura() {
    return arquitetura;
  }

  /**
   * Retorna o <b>momento</b> em que o sistema operacional foi <b>inicializado</b>.
   *
   * @return Data aproximada da inicialização do sistema operacional.
   */
  public Instant getInicializado() {
    return Instant.ofEpochSecond(this.os.getSystemBootTime());
  }

  /**
   * Retorna o <b>tempo de funcionamento</b> do sistema <b>(tempo desde a inicialização)</b>.
   *
   * @return Quantidade de <b>segundos</b> desde a inicialização.
   */
  public Long getTempoDeAtividade() {
    return this.os.getSystemUptime();
  }

  /**
   * Retorna <b><code>True</code></b> caso o processo atual tem <b>permissões elevadas</b>, como <i>sudo/Administrador</i>.
   *
   * @return <code>True</code> se este processo tiver permissões elevadas.
   */
  public Boolean getPermissao() {
    return this.os.isElevated();
  }

  /**
   * Retorna uma <code>String</code> com todas as informações relacionadas ao <b>Sistema Operacional</b>.
   * @return <code>String</code> que contém todas as informações relacionadas ao <b>Sistema Operacional</b>.
   */
  @Override
  public String toString() {

    final StringBuilder sb = new StringBuilder();

    sb.append("Sistema operacional: ")
        .append(sistemaOperacional)
        .append("\n");

    sb.append("Fabricante: ")
        .append(fabricante)
        .append("\n");

    sb.append("Arquitetura: ")
        .append(arquitetura)
        .append("bits\n");

    sb.append("Inicializado: ")
        .append(getInicializado())
        .append("\n");

    sb.append("Tempo de atividade: ")
        .append(Conversor.formatarSegundosDecorridos(this.getTempoDeAtividade()))
        .append("\n");

    sb.append("Permissões: ")
        .append(("Executando como "))
        .append((this.getPermissao() ? "root" : "usuário padrão"))
        .append("\n");

    return sb.toString();
  }
}


================================================
FILE: src/main/java/com/github/britooo/looca/api/group/temperatura/Temperatura.java
================================================
package com.github.britooo.looca.api.group.temperatura;

import oshi.SystemInfo;
import oshi.hardware.HardwareAbstractionLayer;

public class Temperatura {

  private final HardwareAbstractionLayer hardware;

  public Temperatura() {
    hardware = new SystemInfo().getHardware();
  }

  /**
   * <p>
   * Retorna a <b>temperatura</b> da CPU em <b>graus Celsius</b> se disponível, caso contrário <b>retorna 0 ou Double.NaN</b>.
   * </p>
   *
   * <p>
   * No <b>Windows</b>, se não estiver executando o Open Hardware Monitor,
   * requer permissões elevadas e BIOS de hardware que ofereça suporte à publicação no WMI.
   * Neste caso, retorna a temperatura da "Zona Térmica" que pode ser diferente da temperatura da CPU
   * obtida de outras fontes.
   * </p>
   *
   * <p>
   * Além disso, <b>algumas placas-mãe só podem atualizar esse valor em determinados eventos</b>.
   * <p>
   *
   * @return Temperatura em graus Celsius caso disponível
   */
  public Double getTemperatura() {
    return this.hardware.getSensors().getCpuTemperature();
  }

  /**
   * Retorna uma <code>String</code> com todas as informações relacionadas a <b>Temperatura</b>.
   * @return <code>String</code> com todas as informações relacionadas a <b>Temperatura</b>.
   */
  @Override
  public String toString() {
    return String.format("Temperatura: %.1f", getTemperatura());
  }
}


================================================
FILE: src/main/java/com/github/britooo/looca/api/util/Conversor.java
================================================
package com.github.britooo.looca.api.util;

import java.util.concurrent.TimeUnit;


public class Conversor {

    private static final long KIBI = 1L << 10;
    private static final long MEBI = 1L << 20;
    private static final long GIBI = 1L << 30;
    private static final long TEBI = 1L << 40;
    private static final long PEBI = 1L << 50;
    private static final long EXBI = 1L << 60;

    /**
     * Retorna uma <code>String</code> com o valor em <b>bytes</b> convertidos em sua ordem de grandeza equivalente.
     * @param bytes
     * Corresponde a quantidade de <b>bytes</b> <i>(Ex: 1000000000 bytes = 1 Gigabyte)</i>.
     * @return Retorna uma <code>String</code> que corresponde aos <b>bytes</b> convertidos em sua ordem de grandeza equivalente.
     */
    public static String formatarBytes(long bytes) {
        if (bytes == 1L) { // bytes
            return String.format("%d byte", bytes);
        } else if (bytes < KIBI) { // bytes
            return String.format("%d bytes", bytes);
        } else if (bytes < MEBI) { // KiB
            return formatarUnidades(bytes, KIBI, "KiB");
        } else if (bytes < GIBI) { // MiB
            return formatarUnidades(bytes, MEBI, "MiB");
        } else if (bytes < TEBI) { // GiB
            return formatarUnidades(bytes, GIBI, "GiB");
        } else if (bytes < PEBI) { // TiB
            return formatarUnidades(bytes, TEBI, "TiB");
        } else if (bytes < EXBI) { // PiB
            return formatarUnidades(bytes, PEBI, "PiB");
        } else { // EiB
            return formatarUnidades(bytes, EXBI, "EiB");
        }
    }

    /**
     * Retorna uma <code>String</code> com <b>segundos</b> convertidos em <b>data</b>;
     * @param secs
     * Corresponde aos segundos.
     * @return Devolve uma <code>String</code> com os <b>segundos</b> convertidos em <b>data</b>.
     */
    public static String formatarSegundosDecorridos(long secs) {
        
        long eTime = secs;
        
        final long days = TimeUnit.SECONDS.toDays(eTime);
        eTime -= TimeUnit.DAYS.toSeconds(days);
        
        final long hr = TimeUnit.SECONDS.toHours(eTime);
        eTime -= TimeUnit.HOURS.toSeconds(hr);
        
        final long min = TimeUnit.SECONDS.toMinutes(eTime);
        eTime -= TimeUnit.MINUTES.toSeconds(min);
        
        final long sec = eTime;
        
        return String.format("%d days, %02d:%02d:%02d", days, hr, min, sec);
    }

    private static String formatarUnidades(long valor, long prefixo, String unidade) {
        if (valor % prefixo == 0) {
            return String.format("%d %s", valor / prefixo, unidade);
        }
        return String.format("%.1f %s", (double) valor / prefixo, unidade);
    }

    private static Double formatarUnidades(long valor, long prefixo) {
        if (valor % prefixo == 0) {
            return (double) valor / prefixo;
        }
        return (double) valor / prefixo;
    }
}
Download .txt
gitextract_xk47aj25/

├── .classpath
├── .gitignore
├── .project
├── .settings/
│   ├── org.eclipse.core.resources.prefs
│   ├── org.eclipse.jdt.apt.core.prefs
│   ├── org.eclipse.jdt.core.prefs
│   └── org.eclipse.m2e.core.prefs
├── .vscode/
│   └── settings.json
├── LICENSE
├── README.md
├── pom.xml
├── pom.xml.versionsBackup
└── src/
    └── main/
        └── java/
            └── com/
                └── github/
                    └── britooo/
                        └── looca/
                            └── api/
                                ├── core/
                                │   └── Looca.java
                                ├── group/
                                │   ├── discos/
                                │   │   ├── Disco.java
                                │   │   ├── DiscoGrupo.java
                                │   │   └── Volume.java
                                │   ├── dispositivos/
                                │   │   ├── DispositivoUsb.java
                                │   │   └── DispositivosUsbGrupo.java
                                │   ├── janelas/
                                │   │   ├── Janela.java
                                │   │   └── JanelaGrupo.java
                                │   ├── memoria/
                                │   │   └── Memoria.java
                                │   ├── processador/
                                │   │   ├── Processador.java
                                │   │   └── ProcessadorCacheLoader.java
                                │   ├── processos/
                                │   │   ├── Processo.java
                                │   │   └── ProcessoGrupo.java
                                │   ├── rede/
                                │   │   ├── Rede.java
                                │   │   ├── RedeInterface.java
                                │   │   ├── RedeInterfaceGroup.java
                                │   │   └── RedeParametros.java
                                │   ├── servicos/
                                │   │   ├── Servico.java
                                │   │   └── ServicoGrupo.java
                                │   ├── sistema/
                                │   │   └── Sistema.java
                                │   └── temperatura/
                                │       └── Temperatura.java
                                └── util/
                                    └── Conversor.java
Download .txt
SYMBOL INDEX (171 symbols across 22 files)

FILE: src/main/java/com/github/britooo/looca/api/core/Looca.java
  class Looca (line 15) | public class Looca {
    method Looca (line 28) | public Looca() {
    method getSistema (line 47) | public Sistema getSistema() {
    method getMemoria (line 55) | public Memoria getMemoria() {
    method getProcessador (line 63) | public Processador getProcessador() {
    method getTemperatura (line 71) | public Temperatura getTemperatura() {
    method getGrupoDeDiscos (line 79) | public DiscoGrupo getGrupoDeDiscos() {
    method getGrupoDeServicos (line 87) | public ServicoGrupo getGrupoDeServicos() {
    method getGrupoDeProcessos (line 95) | public ProcessoGrupo getGrupoDeProcessos() {
    method getDispositivosUsbGrupo (line 103) | public DispositivosUsbGrupo getDispositivosUsbGrupo() {
    method getRede (line 111) | public Rede getRede() {
    method getGrupoDeJanelas (line 120) | public JanelaGrupo getGrupoDeJanelas() {

FILE: src/main/java/com/github/britooo/looca/api/group/discos/Disco.java
  class Disco (line 5) | public class Disco {
    method Disco (line 9) | public Disco(HWDiskStore disco) {
    method getNome (line 18) | public String getNome() {
    method getModelo (line 27) | public String getModelo() {
    method getSerial (line 36) | public String getSerial() {
    method getTamanho (line 45) | public Long getTamanho() {
    method getLeituras (line 54) | public Long getLeituras() {
    method getBytesDeLeitura (line 63) | public Long getBytesDeLeitura() {
    method getEscritas (line 72) | public Long getEscritas() {
    method getBytesDeEscritas (line 81) | public Long getBytesDeEscritas() {
    method getTamanhoAtualDaFila (line 93) | public Long getTamanhoAtualDaFila() {
    method getTempoDeTransferencia (line 103) | public Long getTempoDeTransferencia() {
    method toString (line 112) | @Override

FILE: src/main/java/com/github/britooo/looca/api/group/discos/DiscoGrupo.java
  class DiscoGrupo (line 12) | public class DiscoGrupo {
    method getVolumes (line 23) | public List<Volume> getVolumes() {
    method getDiscos (line 36) | public List<Disco> getDiscos() {
    method getTamanhoTotal (line 47) | public Long getTamanhoTotal() {
    method getQuantidadeDeDiscos (line 57) | public Integer getQuantidadeDeDiscos() {
    method getQuantidadeDeVolumes (line 66) | public Integer getQuantidadeDeVolumes() {
    method of (line 70) | private static Volume of(OSFileStore volume) {
    method of (line 77) | private static Disco of(HWDiskStore disco) {

FILE: src/main/java/com/github/britooo/looca/api/group/discos/Volume.java
  class Volume (line 5) | public class Volume {
    method Volume (line 9) | public Volume(OSFileStore volume) {
    method getUUID (line 19) | public String getUUID() {
    method getNome (line 31) | public String getNome() {
    method getVolume (line 43) | public String getVolume() {
    method getTotal (line 52) | public Long getTotal() {
    method getDisponivel (line 63) | public Long getDisponivel() {
    method getTipo (line 72) | public String getTipo() {
    method getPontoDeMontagem (line 84) | public String getPontoDeMontagem() {
    method toString (line 93) | @Override

FILE: src/main/java/com/github/britooo/looca/api/group/dispositivos/DispositivoUsb.java
  class DispositivoUsb (line 5) | public class DispositivoUsb {
    method getNome (line 14) | public String getNome() {
    method getIdProduto (line 23) | public String getIdProduto() {
    method getNumeroDeSerie (line 32) | public String getNumeroDeSerie() {
    method getIdDispositivoUsbExclusivo (line 42) | public String getIdDispositivoUsbExclusivo() {
    method getForncecedor (line 51) | public String getForncecedor() {
    method getIdFornecedor (line 60) | public String getIdFornecedor() {
    method DispositivoUsb (line 64) | public DispositivoUsb(UsbDevice usbDevice) {
    method toString (line 68) | @Override

FILE: src/main/java/com/github/britooo/looca/api/group/dispositivos/DispositivosUsbGrupo.java
  class DispositivosUsbGrupo (line 11) | public class DispositivosUsbGrupo {
    method getTotalDispositvosUsb (line 20) | public Integer getTotalDispositvosUsb() {
    method getTotalDispositvosUsbConectados (line 35) | public Integer getTotalDispositvosUsbConectados() {
    method getDispositivosUsb (line 51) | public List<DispositivoUsb> getDispositivosUsb() {
    method getDispositivosUsbConectados (line 66) | public List<DispositivoUsb> getDispositivosUsbConectados() {
    method of (line 78) | private static DispositivoUsb of(UsbDevice usbDevice) {

FILE: src/main/java/com/github/britooo/looca/api/group/janelas/Janela.java
  class Janela (line 7) | public class Janela {
    method Janela (line 11) | public Janela(OSDesktopWindow janela) {
    method of (line 15) | public static Janela of(OSDesktopWindow janela) {
    method getPid (line 28) | public Long getPid() {
    method getJanelaId (line 37) | public Long getJanelaId() {
    method getTitulo (line 46) | public String getTitulo() {
    method getComando (line 56) | public String getComando() {
    method getLocalizacaoETamanho (line 66) | public Rectangle getLocalizacaoETamanho() {
    method isVisivel (line 75) | public Boolean isVisivel() {
    method toString (line 79) | @Override

FILE: src/main/java/com/github/britooo/looca/api/group/janelas/JanelaGrupo.java
  class JanelaGrupo (line 9) | public class JanelaGrupo {
    method JanelaGrupo (line 13) | public JanelaGrupo(SystemInfo si) {
    method getJanelas (line 22) | public List<Janela> getJanelas() {
    method getJanelasVisiveis (line 33) | public List<Janela> getJanelasVisiveis() {
    method getTotalJanelas (line 44) | public Integer getTotalJanelas() {
    method getTotalJanelasVisiveis (line 53) | public Integer getTotalJanelasVisiveis() {

FILE: src/main/java/com/github/britooo/looca/api/group/memoria/Memoria.java
  class Memoria (line 7) | public class Memoria {
    method getDisponivel (line 17) | public Long getDisponivel() {
    method getTotal (line 26) | public Long getTotal() {
    method getEmUso (line 35) | public Long getEmUso() {
    method toString (line 43) | @Override

FILE: src/main/java/com/github/britooo/looca/api/group/processador/Processador.java
  class Processador (line 6) | public class Processador {
    method getFabricante (line 17) | public String getFabricante() {
    method getNome (line 26) | public String getNome() {
    method getId (line 51) | public String getId() {
    method getIdentificador (line 61) | public String getIdentificador() {
    method getMicroarquitetura (line 71) | public String getMicroarquitetura() {
    method getFrequencia (line 83) | public Long getFrequencia() {
    method getNumeroPacotesFisicos (line 93) | public Integer getNumeroPacotesFisicos() {
    method getNumeroCpusFisicas (line 102) | public Integer getNumeroCpusFisicas() {
    method getNumeroCpusLogicas (line 112) | public Integer getNumeroCpusLogicas() {
    method getUso (line 144) | public Double getUso() {
    method toString (line 152) | @Override

FILE: src/main/java/com/github/britooo/looca/api/group/processador/ProcessadorCacheLoader.java
  class ProcessadorCacheLoader (line 21) | public class ProcessadorCacheLoader {
    method ProcessadorCacheLoader (line 29) | public ProcessadorCacheLoader() {
    method getUso (line 50) | public Double getUso() {
    method loadUso (line 59) | private Double loadUso() {
    method getUsoOshi (line 76) | private ListenableFuture<Double> getUsoOshi() {

FILE: src/main/java/com/github/britooo/looca/api/group/processos/Processo.java
  class Processo (line 6) | public class Processo {
    method Processo (line 12) | public Processo(OSProcess processo, Memoria memoria) {
    method getPid (line 25) | public Integer getPid() {
    method getNome (line 34) | public String getNome() {
    method getUsoCpu (line 52) | public Double getUsoCpu() {
    method getUsoMemoria (line 65) | public Double getUsoMemoria() {
    method getBytesUtilizados (line 87) | public Long getBytesUtilizados() {
    method getMemoriaVirtualUtilizada (line 99) | public Long getMemoriaVirtualUtilizada() {
    method toString (line 107) | @Override

FILE: src/main/java/com/github/britooo/looca/api/group/processos/ProcessoGrupo.java
  class ProcessoGrupo (line 13) | public class ProcessoGrupo {
    method getTotalThreads (line 22) | public Integer getTotalThreads() {
    method getTotalProcessos (line 31) | public Integer getTotalProcessos() {
    method getProcessos (line 44) | public List<Processo> getProcessos() {
    method of (line 51) | private static Processo of(OSProcess processo) {
    method toString (line 63) | @Override

FILE: src/main/java/com/github/britooo/looca/api/group/rede/Rede.java
  class Rede (line 5) | public class Rede {
    method Rede (line 9) | public Rede(SystemInfo si) {
    method getGrupoDeInterfaces (line 18) | public RedeInterfaceGroup getGrupoDeInterfaces() {
    method getParametros (line 27) | public RedeParametros getParametros() {

FILE: src/main/java/com/github/britooo/looca/api/group/rede/RedeInterface.java
  class RedeInterface (line 8) | public class RedeInterface {
    method RedeInterface (line 12) | public RedeInterface(NetworkIF redeInterface) {
    method of (line 16) | public static RedeInterface of(NetworkIF redeInterface) {
    method getNome (line 29) | public String getNome() {
    method getNomeExibicao (line 38) | public String getNomeExibicao() {
    method getEnderecoIpv4 (line 47) | public List<String> getEnderecoIpv4() {
    method getEnderecoIpv6 (line 56) | public List<String> getEnderecoIpv6() {
    method getEnderecoMac (line 65) | public String getEnderecoMac() {
    method getBytesRecebidos (line 74) | public Long getBytesRecebidos() {
    method getBytesEnviados (line 84) | public Long getBytesEnviados() {
    method getPacotesRecebidos (line 94) | public Long getPacotesRecebidos() {
    method getPacotesEnviados (line 103) | public Long getPacotesEnviados() {
    method toString (line 107) | @Override

FILE: src/main/java/com/github/britooo/looca/api/group/rede/RedeInterfaceGroup.java
  class RedeInterfaceGroup (line 9) | public class RedeInterfaceGroup {
    method RedeInterfaceGroup (line 13) | public RedeInterfaceGroup(SystemInfo si) {
    method getInterfaces (line 22) | public List<RedeInterface> getInterfaces() {

FILE: src/main/java/com/github/britooo/looca/api/group/rede/RedeParametros.java
  class RedeParametros (line 9) | public class RedeParametros {
    method RedeParametros (line 13) | public RedeParametros(SystemInfo si) {
    method getHostName (line 22) | public String getHostName() {
    method getNomeDeDominio (line 31) | public String getNomeDeDominio() {
    method getServidoresDns (line 40) | public List<String> getServidoresDns() {
    method toString (line 44) | @Override

FILE: src/main/java/com/github/britooo/looca/api/group/servicos/Servico.java
  class Servico (line 5) | public class Servico {
    method Servico (line 9) | public Servico(OSService servico) {
    method getPid (line 18) | public Integer getPid() {
    method getNome (line 27) | public String getNome() {
    method getEstado (line 40) | public String getEstado() {
    method toString (line 48) | @Override

FILE: src/main/java/com/github/britooo/looca/api/group/servicos/ServicoGrupo.java
  class ServicoGrupo (line 11) | public class ServicoGrupo {
    type STATUS (line 13) | enum STATUS {
    method getServicos (line 25) | public List<Servico> getServicos() {
    method getTotalDeServicos (line 34) | public Integer getTotalDeServicos() {
    method getServicosAtivos (line 43) | public List<Servico> getServicosAtivos() {
    method getTotalServicosAtivos (line 55) | public Integer getTotalServicosAtivos() {
    method getServicosInativos (line 64) | public List<Servico> getServicosInativos() {
    method getTotalServicosInativos (line 76) | public Integer getTotalServicosInativos() {
    method recuperarServicosOshi (line 80) | private List<OSService> recuperarServicosOshi() {
    method of (line 84) | private static Servico of(OSService servico) {

FILE: src/main/java/com/github/britooo/looca/api/group/sistema/Sistema.java
  class Sistema (line 10) | public class Sistema {
    method Sistema (line 17) | public Sistema() {
    method getSistemaOperacional (line 29) | public String getSistemaOperacional() {
    method getFabricante (line 38) | public String getFabricante() {
    method getArquitetura (line 47) | public Integer getArquitetura() {
    method getInicializado (line 56) | public Instant getInicializado() {
    method getTempoDeAtividade (line 65) | public Long getTempoDeAtividade() {
    method getPermissao (line 74) | public Boolean getPermissao() {
    method toString (line 82) | @Override

FILE: src/main/java/com/github/britooo/looca/api/group/temperatura/Temperatura.java
  class Temperatura (line 6) | public class Temperatura {
    method Temperatura (line 10) | public Temperatura() {
    method getTemperatura (line 32) | public Double getTemperatura() {
    method toString (line 40) | @Override

FILE: src/main/java/com/github/britooo/looca/api/util/Conversor.java
  class Conversor (line 6) | public class Conversor {
    method formatarBytes (line 21) | public static String formatarBytes(long bytes) {
    method formatarSegundosDecorridos (line 47) | public static String formatarSegundosDecorridos(long secs) {
    method formatarUnidades (line 65) | private static String formatarUnidades(long valor, long prefixo, Strin...
    method formatarUnidades (line 72) | private static Double formatarUnidades(long valor, long prefixo) {
Condensed preview — 34 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (127K chars).
[
  {
    "path": ".classpath",
    "chars": 1770,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classpath>\n\t<classpathentry kind=\"src\" output=\"target/classes\" path=\"src/main/ja"
  },
  {
    "path": ".gitignore",
    "chars": 310,
    "preview": "# Compiled class file\n*.class\n\n# Log file\n*.log\n\n# BlueJ files\n*.ctxt\n\n# Mobile Tools for Java (J2ME)\n.mtj.tmp/\n\n# Packa"
  },
  {
    "path": ".project",
    "chars": 834,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<projectDescription>\n\t<name>looca-api</name>\n\t<comment></comment>\n\t<projects>\n\t</"
  },
  {
    "path": ".settings/org.eclipse.core.resources.prefs",
    "chars": 115,
    "preview": "eclipse.preferences.version=1\nencoding//src/main/java=UTF-8\nencoding//src/test/java=UTF-8\nencoding/<project>=UTF-8\n"
  },
  {
    "path": ".settings/org.eclipse.jdt.apt.core.prefs",
    "chars": 67,
    "preview": "eclipse.preferences.version=1\norg.eclipse.jdt.apt.aptEnabled=false\n"
  },
  {
    "path": ".settings/org.eclipse.jdt.core.prefs",
    "chars": 44596,
    "preview": "eclipse.preferences.version=1\nenableParallelJavaIndexSearch=true\norg.eclipse.jdt.core.builder.annotationPath.allLocation"
  },
  {
    "path": ".settings/org.eclipse.m2e.core.prefs",
    "chars": 86,
    "preview": "activeProfiles=\neclipse.preferences.version=1\nresolveWorkspaceProjects=true\nversion=1\n"
  },
  {
    "path": ".vscode/settings.json",
    "chars": 66,
    "preview": "{\n  \"java.configuration.updateBuildConfiguration\": \"interactive\"\n}"
  },
  {
    "path": "LICENSE",
    "chars": 1068,
    "preview": "MIT License\n\nCopyright (c) 2021 Diego Brito\n\nPermission is hereby granted, free of charge, to any person obtaining a cop"
  },
  {
    "path": "README.md",
    "chars": 2923,
    "preview": "\n[![Looca API](./readme/readmes.gif)]()\n# Log of Computer Activity\n\n### **Looca** é uma API que coleta dados de maquina "
  },
  {
    "path": "pom.xml",
    "chars": 6503,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
  },
  {
    "path": "pom.xml.versionsBackup",
    "chars": 5493,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
  },
  {
    "path": "src/main/java/com/github/britooo/looca/api/core/Looca.java",
    "chars": 4291,
    "preview": "package com.github.britooo.looca.api.core;\n\nimport com.github.britooo.looca.api.group.discos.DiscoGrupo;\nimport com.gith"
  },
  {
    "path": "src/main/java/com/github/britooo/looca/api/group/discos/Disco.java",
    "chars": 3522,
    "preview": "package com.github.britooo.looca.api.group.discos;\n\nimport oshi.hardware.HWDiskStore;\n\npublic class Disco {\n\n  private f"
  },
  {
    "path": "src/main/java/com/github/britooo/looca/api/group/discos/DiscoGrupo.java",
    "chars": 2094,
    "preview": "package com.github.britooo.looca.api.group.discos;\n\nimport java.util.List;\nimport java.util.stream.Collectors;\n\nimport o"
  },
  {
    "path": "src/main/java/com/github/britooo/looca/api/group/discos/Volume.java",
    "chars": 2952,
    "preview": "package com.github.britooo.looca.api.group.discos;\n\nimport oshi.software.os.OSFileStore;\n\npublic class Volume {\n\n  priva"
  },
  {
    "path": "src/main/java/com/github/britooo/looca/api/group/dispositivos/DispositivoUsb.java",
    "chars": 1816,
    "preview": "package com.github.britooo.looca.api.group.dispositivos;\n\nimport oshi.hardware.UsbDevice;\n\npublic class DispositivoUsb {"
  },
  {
    "path": "src/main/java/com/github/britooo/looca/api/group/dispositivos/DispositivosUsbGrupo.java",
    "chars": 2541,
    "preview": "package com.github.britooo.looca.api.group.dispositivos;\n\nimport java.util.ArrayList;\nimport java.util.List;\nimport java"
  },
  {
    "path": "src/main/java/com/github/britooo/looca/api/group/janelas/Janela.java",
    "chars": 2333,
    "preview": "package com.github.britooo.looca.api.group.janelas;\n\nimport oshi.software.os.OSDesktopWindow;\n\nimport java.awt.*;\n\npubli"
  },
  {
    "path": "src/main/java/com/github/britooo/looca/api/group/janelas/JanelaGrupo.java",
    "chars": 1390,
    "preview": "package com.github.britooo.looca.api.group.janelas;\n\nimport oshi.SystemInfo;\nimport oshi.software.os.OperatingSystem;\n\ni"
  },
  {
    "path": "src/main/java/com/github/britooo/looca/api/group/memoria/Memoria.java",
    "chars": 1699,
    "preview": "package com.github.britooo.looca.api.group.memoria;\n\nimport oshi.SystemInfo;\nimport oshi.hardware.HardwareAbstractionLay"
  },
  {
    "path": "src/main/java/com/github/britooo/looca/api/group/processador/Processador.java",
    "chars": 7217,
    "preview": "package com.github.britooo.looca.api.group.processador;\n\nimport oshi.SystemInfo;\nimport oshi.hardware.CentralProcessor;\n"
  },
  {
    "path": "src/main/java/com/github/britooo/looca/api/group/processador/ProcessadorCacheLoader.java",
    "chars": 2729,
    "preview": "package com.github.britooo.looca.api.group.processador;\n\nimport java.util.concurrent.Callable;\nimport java.util.concurre"
  },
  {
    "path": "src/main/java/com/github/britooo/looca/api/group/processos/Processo.java",
    "chars": 4856,
    "preview": "package com.github.britooo.looca.api.group.processos;\n\nimport oshi.software.os.OSProcess;\nimport com.github.britooo.looc"
  },
  {
    "path": "src/main/java/com/github/britooo/looca/api/group/processos/ProcessoGrupo.java",
    "chars": 2133,
    "preview": "package com.github.britooo.looca.api.group.processos;\n\nimport java.util.List;\n\nimport oshi.SystemInfo;\nimport oshi.softw"
  },
  {
    "path": "src/main/java/com/github/britooo/looca/api/group/rede/Rede.java",
    "chars": 845,
    "preview": "package com.github.britooo.looca.api.group.rede;\n\nimport oshi.SystemInfo;\n\npublic class Rede {\n\n  private final SystemIn"
  },
  {
    "path": "src/main/java/com/github/britooo/looca/api/group/rede/RedeInterface.java",
    "chars": 3287,
    "preview": "package com.github.britooo.looca.api.group.rede;\n\nimport oshi.hardware.NetworkIF;\n\nimport java.util.Arrays;\nimport java."
  },
  {
    "path": "src/main/java/com/github/britooo/looca/api/group/rede/RedeInterfaceGroup.java",
    "chars": 640,
    "preview": "package com.github.britooo.looca.api.group.rede;\n\nimport oshi.SystemInfo;\nimport oshi.hardware.HardwareAbstractionLayer;"
  },
  {
    "path": "src/main/java/com/github/britooo/looca/api/group/rede/RedeParametros.java",
    "chars": 1299,
    "preview": "package com.github.britooo.looca.api.group.rede;\n\nimport oshi.SystemInfo;\nimport oshi.software.os.NetworkParams;\n\nimport"
  },
  {
    "path": "src/main/java/com/github/britooo/looca/api/group/servicos/Servico.java",
    "chars": 1338,
    "preview": "package com.github.britooo.looca.api.group.servicos;\n\nimport oshi.software.os.OSService;\n\npublic class Servico {\n\n  priv"
  },
  {
    "path": "src/main/java/com/github/britooo/looca/api/group/servicos/ServicoGrupo.java",
    "chars": 2127,
    "preview": "package com.github.britooo.looca.api.group.servicos;\n\nimport java.util.List;\n\nimport oshi.SystemInfo;\n\nimport java.util."
  },
  {
    "path": "src/main/java/com/github/britooo/looca/api/group/sistema/Sistema.java",
    "chars": 3014,
    "preview": "package com.github.britooo.looca.api.group.sistema;\n\nimport oshi.SystemInfo;\n\nimport java.time.Instant;\n\nimport oshi.sof"
  },
  {
    "path": "src/main/java/com/github/britooo/looca/api/group/temperatura/Temperatura.java",
    "chars": 1364,
    "preview": "package com.github.britooo.looca.api.group.temperatura;\n\nimport oshi.SystemInfo;\nimport oshi.hardware.HardwareAbstractio"
  },
  {
    "path": "src/main/java/com/github/britooo/looca/api/util/Conversor.java",
    "chars": 2930,
    "preview": "package com.github.britooo.looca.api.util;\n\nimport java.util.concurrent.TimeUnit;\n\n\npublic class Conversor {\n\n    privat"
  }
]

About this extraction

This page contains the full source code of the Britooo/looca-api GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 34 files (117.4 KB), approximately 30.5k tokens, and a symbol index with 171 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!