Skip to content

Instantly share code, notes, and snippets.

View LukasRychtecky's full-sized avatar

Lukáš Rychtecký LukasRychtecky

View GitHub Profile
// domain
class User {}
class UserRequest {}
class ProjectCreator {}
class UserCreator {
UserCreator(Supplier<OffsetDateTime> now, ProjectCreator projectCreator) {}
User create(UserRequest r)
}
// service layer
@LukasRychtecky
LukasRychtecky / zfo_attachments_extractor.clj
Created July 3, 2023 13:04
A script for extracting attachments from ZFO files
(import '[java.util Base64])
(let [decode-base64 #(.decode (Base64/getDecoder) %)
path "/my/input/zfo.xml"
output-dir "/my/output/dir/"
parsed (-> path io/file io/input-stream xml/parse)
files
(->> parsed
:content
first
@LukasRychtecky
LukasRychtecky / zfo_reader.clj
Created July 3, 2023 12:29
A script for extracting ZFO files from EML
(import '[org.bouncycastle.cms CMSSignedData])
(let [path "/my/input/path/for/zfo.eml"
reader (-> path io/file io/input-stream)
in-ba (-> (CMSSignedData. reader) .getSignedContent .getContent)
is (-> in-ba io/input-stream)]
(with-open [r (-> is io/reader)]
(with-open [w (io/writer "/my/output/path/for/extracted.xml")]
(.write w (slurp r))))))
(ns org.example.playground.handler.visitor)
(defmulti ->json type)
(defmethod ->json java.lang.Boolean
[x]
(str x))
(defmethod ->json java.lang.Long
[x]
package org.example.jplayground;
import java.util.List;
import java.util.stream.Collectors;
public class ToJsonProblem {
interface SerializableValue<X> {
X serialize();
}
@LukasRychtecky
LukasRychtecky / java4.java
Last active September 28, 2022 13:16
OOP vs. FP approach
// ----------------------------------------------------- common --------------------------------------------------------------
package io.applifting.jbtesting.module.usergist;
public class Email {
private final String email;
private Email(String email) {
this.email = email;
}
@LukasRychtecky
LukasRychtecky / clj1.clj
Last active September 8, 2022 16:27
clj1.clj
;; factory functions
(defn order-query-of-field1
[v]
{:type :field1, :value v})
(defn order-query-of-field2
[v1 v2]
{:type :field2, :v1 v1, :v2 v2})
@LukasRychtecky
LukasRychtecky / clj0.clj
Last active September 8, 2022 16:28
clj0.clj
;; factory functions
(defn order-query-of-field1
[v]
{:type :field1, :value v})
(defn order-query-of-field2
[v1 v2]
{:type :field2, :v1 v1, :v2 v2})
@LukasRychtecky
LukasRychtecky / java3.java
Created September 6, 2022 11:56
java3.java
public class OrderQuery {
public static FilterableCollection of(Field1 field) {
return new FilterableByQueryField1(field);
}
public static FilterableCollection of(Field2 field) {
return new FilterableByQueryField2(field);
}
public static FilterableCollection of(Field3 field) {
public abstract class OrderQuery {
public static OrderQuery of(Field1 field) {
return new FilterableByQueryField1(field);
}
public static OrderQuery of(Field2 field) {
return new FilterableByQueryField2(field);
}
public static OrderQuery of(Field3 field) {