{"id":41243824,"url":"https://github.com/agdturner/ccg-generic","last_synced_at":"2026-01-23T01:23:14.691Z","repository":{"id":24527337,"uuid":"27933550","full_name":"agdturner/ccg-generic","owner":"agdturner","description":"A modularised Java library with common utility for numerous other libraries.","archived":false,"fork":false,"pushed_at":"2026-01-14T16:40:57.000Z","size":7593,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-14T18:23:25.003Z","etag":null,"topics":["database","headless","java","memory-management","time","utility-library","visualization"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/agdturner.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2014-12-12T18:51:38.000Z","updated_at":"2026-01-14T16:41:02.000Z","dependencies_parsed_at":"2024-05-16T22:28:39.755Z","dependency_job_id":"be3caf86-616b-45d2-82bf-91e31d66a439","html_url":"https://github.com/agdturner/ccg-generic","commit_stats":null,"previous_names":["agdturner/agdt-java-generic","agdturner/generic"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/agdturner/ccg-generic","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agdturner%2Fccg-generic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agdturner%2Fccg-generic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agdturner%2Fccg-generic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agdturner%2Fccg-generic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agdturner","download_url":"https://codeload.github.com/agdturner/ccg-generic/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agdturner%2Fccg-generic/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28677256,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T01:00:35.747Z","status":"ssl_error","status_checked_at":"2026-01-23T01:00:19.529Z","response_time":144,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","headless","java","memory-management","time","utility-library","visualization"],"created_at":"2026-01-23T01:23:12.449Z","updated_at":"2026-01-23T01:23:14.672Z","avatar_url":"https://github.com/agdturner.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [ccg-generic](https://github.com/agdturner/ccg-generic)\n\n## Description\nA [modularised](https://en.wikipedia.org/wiki/Java_Platform_Module_System) Java library only dependent on the [openJDK](https://openjdk.java.net/) and [ccg-io](https://github.com/agdturner/ccg-io) providing:\n- [memory](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/memory) - a package for memory management that specifically helps avoid and handle instances of [OutOfMemoryError](https://cr.openjdk.java.net/~iris/se/15/latestSpec/api/java.base/java/lang/OutOfMemoryError.html). The handling generally entails copying data from the fast access memory (RAM) to the slow access memory (disk) and then clearing it from RAM - a process sometimes known as \"swapping to disk\". Application data stored on disk is typically organised using [IO_Cache](https://github.com/agdturner/ccg-io/blob/master/src/main/java/uk/ac/leeds/ccg/io/IO_Cache.java) data stores. Managing memory well so that algorithms remain efficient often involves knowing what parts of data are likely to be needed and when. This allows for proacive management rather then reactive management (which has to happen when a memory store is full and more memory on that store is being demanded). \n- Functionality that has been found commonly useful and was not available in what was the latest [openJDK](https://openjdk.java.net/) at the time.\n\n(See below for [Details](#Details).)\n\n## Latest versioned release\nDeveloped and tested on [Java Development Kit, version 15](https://openjdk.java.net/projects/jdk/15/).\n```\n\u003c!-- https://mvnrepository.com/artifact/io.github.agdturner/agdt-java-generic --\u003e\n\u003cdependency\u003e\n    \u003cgroupId\u003eio.github.agdturner\u003c/groupId\u003e\n    \u003cartifactId\u003eagdt-java-generic\u003c/artifactId\u003e\n    \u003cversion\u003e2.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n[JAR](https://repo1.maven.org/maven2/io/github/agdturner/agdt-java-generic/2.0/agdt-java-generic-2.0.jar)\n\n## Development plans/ideas\n- There are no known issues or feature requests.\n- Develop in an [agile](https://en.wikipedia.org/wiki/Agile_software_development) way.\n- As the [OpenJDK](https://openjdk.java.net/) develops the functionality of this library may become redundant.\n\n## Development history\n### Changes from version 1.11 to version 2.0\nThe part of the library that provided a cache and some generic input and output utility methods was abstracted to [ccg-io](https://github.com/agdturner/ccg-io) which became a dependency for this.\n### Origin\nThis code began development bundled together with lots of other code developed for an academic research project. Gradually, common code generated from other academic research projects formed into this library which is being rationalised.\n\n## Contributions\n- Welcome.\n\n## LICENSE\n- [APACHE LICENSE, VERSION 2.0](https://www.apache.org/licenses/LICENSE-2.0)\n\n## Package details\n\n### 1. [core](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/core)\n\n#### [Generic_Environment](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/core/Generic_Environment.java)\nA generic environment class for those things that most objects might want to access.\n\n#### [Generic_Object](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/core/Generic_Object.java)\nA serializable class that holds a transient reference to a Generic_Environment instance (env).\n\n#### [Generic_Strings](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/core/Generic_Strings.java)\nA class that holds commonly used Strings.\n\n\n### 2. [execution](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/execution)\n\n#### [Generic_Execution](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/execution/Generic_Execution.java)\nGeneric utility class for process execution handling.\n\n\n### 3. [io](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/io)\n\n#### [Generic_Defaults](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/io/Generic_Defaults.java)\nA class for holding Input/Output (IO) defaults.\n\n#### [Generic_Files](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/io/Generic_Files.java)\nA class for helping to organise data Files.\n- It is usual that for data processing tasks there is a data directory (dataDir).\n- Input data are to be stored within dataDir in an input directory (inputDir).\n- Generated data are to be stored within dataDir in a generated directory (generatedDir).\n- Output data are to be stored within dataDir in an output directory (outputDir).\n\n#### [Generic_IO](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/io/Generic_IO.java)\nGeneral Input/Output utility class mostly now just containing methods for setting the syntax of StreamTokenizers.\n\n\n### 4. [lang](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/lang)\n\n#### [Generic_String](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/lang/Generic_String.java)\nUtility methods for String transformations.\n\n\n### 5. [math](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/math)\n\n#### [Generic_Math](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/math/Generic_Math.java)\nContains methods for adding two Numbers and testing if Numbers can be stored as other types of Number if not exactly, then within a specific error bound.\n\n\n### 6. [memory](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/memory)\n\n#### [Generic_MemoryManager](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/memory/Generic_MemoryManager.java)\nA class to be extended for memory management involving caching data from the fast access memory to files and then clearing this from the fast access memory. Most methods handle OutOfMemoryErrors should they be encountered, but generally the aim is to avoid these by testing for available memory and caching data prior to running very low on memory.\n\n#### [Generic_Memory](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/memory/Generic_Memory.java)\nAn interface for memory management which outlines the methods required.\n\n#### [Generic_TestMemory](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/memory/Generic_TestMemory.java)\nA class with methods that help in testing the availablity and usage of fast access memory.\n\n\n### 7. [time](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/time)\n\n#### [Generic_Date](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/time/Generic_Date.java)\nHolds a reference to a LocalDate and provides methods to compare and process dates.\n\n#### [Generic_LocalDateRange](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/time/Generic_LocalDateRange.java)\nSimply holds a LocalDate start and a LocalDate end.\n\n#### [Generic_Time](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/time/Generic_Time.java)\nHolds a reference to a LocalDateTime and provides methods to compare and process times.\n- Not to be confused with: [uk.ac.leeds.ccg.generic.util.Generic_Time](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/util/Generic_Time.java)\n\n#### [Generic_YearMonth](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/time/Generic_YearMonth.java)\nHolds a reference to a YearMonth and provides methods to compare and process year-months.\n\n\n### 8. [util](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/util)\n\n#### [Generic_Collections](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/util/Generic_Collections.java)\nContains methods for processing and manipulating collections including Lists, Arrays, Sets and Maps.\n\n#### [Generic_Time](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/util/Generic_Time.java)\nThis pre-dates java.time and was used in programs that ticked through time acting effectively like a stop-watch type clock. It holds methods to help with processing dates and aggregating data by time periods (e.g. hours, months).\n- Not to be confused with [uk.ac.leeds.ccg.generic.time.Generic_Time](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/time/Generic_Time.java)\n\n\n### 9. [visualisation](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/visualisation)\n\n#### [Generic_Visualisation](https://github.com/agdturner/agdt-java-generic/tree/master/src/main/java/uk/ac/leeds/ccg/generic/visualisation/Generic_Visualisation.java)\nA class with methods for visualisation that will work in headless environments.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagdturner%2Fccg-generic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagdturner%2Fccg-generic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagdturner%2Fccg-generic/lists"}