{"id":18649808,"url":"https://github.com/ashwanthkumar/my-java-utils","last_synced_at":"2025-07-08T02:34:22.709Z","repository":{"id":26329656,"uuid":"29778220","full_name":"ashwanthkumar/my-java-utils","owner":"ashwanthkumar","description":"Set of java utils that I generally carry around when I write OSS java projects.","archived":false,"fork":false,"pushed_at":"2022-08-15T23:11:36.000Z","size":89,"stargazers_count":3,"open_issues_count":5,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-25T14:50:56.381Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ashwanthkumar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-24T14:00:19.000Z","updated_at":"2021-04-29T22:45:42.000Z","dependencies_parsed_at":"2022-08-27T16:41:39.617Z","dependency_job_id":null,"html_url":"https://github.com/ashwanthkumar/my-java-utils","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashwanthkumar%2Fmy-java-utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashwanthkumar%2Fmy-java-utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashwanthkumar%2Fmy-java-utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashwanthkumar%2Fmy-java-utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ashwanthkumar","download_url":"https://codeload.github.com/ashwanthkumar/my-java-utils/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248419753,"owners_count":21100245,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-07T06:40:44.793Z","updated_at":"2025-04-11T14:32:21.784Z","avatar_url":"https://github.com/ashwanthkumar.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/ashwanthkumar/my-java-utils.svg?branch=master)](https://travis-ci.org/ashwanthkumar/my-java-utils)\n\n# my-java-utils\nSet of Java utils that I take along with my OSS java projects. Most of them are influenced from [Scala](http://scala-lang.org/) world and [Guava](https://github.com/google/guava) library. Library has zero external dependencies. If you find some implementations can be better, please do let me know.\n\n## Features\n### List\n- Lists#map\n- Lists#filter\n- Lists#foldL\n- Lists#find\n- Lists#mkString\n- Lists#Nil\n- Lists#concat\n- Lists#flatten\n- Lists#take\n- Lists#takeWhile\n\n### Set\n- Sets#copy\n- Sets#isEmpty\n- Sets#nonEmpty\n\n### Iterable\n- Iterables#exists\n- Iterables#forall\n- Iterables#head\n- Iterables#headOption\n- Iterables#isEmpty\n- Iterables#nonEmpty\n- Iterables#toMap\n- Iterables#foreach\n\n### Maps\n- Maps#of\n- Maps#builder\n- Maps#empty\n- Maps#getOrElse\n\n### Lang\n- Option / Some / None\n- Tuple2 / Tuple3\n- Function\n- Predicate\n\n### Functions\n- Functions#identity\n- Functions#STDOUT\n- Functions#STDERR\n\n### Predicates\n- Predicates#True\n- Predicates#False\n\n### StringUtils\n- StringUtils#isNotEmpty\n- StringUtils#isEmpty\n- StringUtils#startsWith\n- StringUtils#endsWith\n- StringUtils#size\n- StringUtils#trim\n- StringUtils#isBlank\n- StringUtils#isNotBlank\n\n### IO\n- IO#fromFile\n- IO#linesFromFile\n- IO#linesFromInputStream\n\n### Monadic Parsers\n```java\nParser\u003cString\u003e parser = Literal(\"input\");\nParserResult\u003cString\u003e result = parser.parse(\"input is awesome\"); // returns Success\u003cString\u003e\nParserResult\u003cString\u003e result = parser.parse(\"output is awesome\"); // returns Failure\u003cString\u003e\n```\n\nInspired from Scala's [Parser Combinator](https://github.com/scala/scala-parser-combinators) and JS [Parsimmon](https://github.com/jneen/parsimmon).\nTake a look at [TemplateParser](https://github.com/ashwanthkumar/my-java-utils/blob/master/src/main/java/in/ashwanthkumar/utils/template/TemplateParser.java), it's implemented using this parser package.\n\n### Parsers\n- Parsers#Literal\n- Parsers#Character\n- Parsers#Integer\n- Parsers#Double\n- Parsers#Regex\n- Parsers#Sequence\n\n### Parser\n- Parser#map\n- Parser#thenR\n- Parser#thenL\n- Parser#then\n- Parser#or\n- Parser#debug\n- Parser#skip\n\n### TemplateParser\nSupports `#{variable}` and `#{variable?default}` type syntax based rendering. Inspired from [sbt-editsource](http://software.clapper.org/sbt-editsource/#variables) plugin.\n\n## Dependencies\n\nFor Maven,\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003ein.ashwanthkumar\u003c/groupId\u003e\n  \u003cartifactId\u003emy-java-utils\u003c/artifactId\u003e\n  \u003cversion\u003e0.1.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nFor SBT,\n```\nlibraryDependencies += \"in.ashwanthkumar\" % \"my-java-utils\" % \"0.1.0\"\n```\n\n## License\nhttp://www.apache.org/licenses/LICENSE-2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashwanthkumar%2Fmy-java-utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fashwanthkumar%2Fmy-java-utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashwanthkumar%2Fmy-java-utils/lists"}