Skip to content

Commit d218b00

Browse files
committed
BasicHelperNG / BasicWrapperNG with no serialization
1 parent c57acf0 commit d218b00

File tree

6 files changed

+90
-16
lines changed

6 files changed

+90
-16
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
### Added
11+
12+
- BasicWrapperNG with no serialization
13+
1014
## [8.5.1] - 2024-03-08
1115

1216
### Added

fj-core/src/main/java/org/fugerit/java/core/db/daogen/BasicHelper.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.fugerit.java.core.db.daogen;
22

33
import java.io.Serializable;
4+
import java.util.function.BooleanSupplier;
45

56
public class BasicHelper implements Serializable {
67

@@ -9,10 +10,14 @@ public class BasicHelper implements Serializable {
910
*/
1011
private static final long serialVersionUID = 7545568256714803873L;
1112

12-
protected static final boolean UNSOPPORTED_OPERATION = true;
13-
13+
private static final boolean UNSUPPORTED_OPERATION = true;
14+
1415
public static void throwUnsupported( String message ) {
15-
if ( UNSOPPORTED_OPERATION ) {
16+
throwUnsupported( message, () -> UNSUPPORTED_OPERATION );
17+
}
18+
19+
public static void throwUnsupported(String message, BooleanSupplier isUnsupported) {
20+
if ( isUnsupported.getAsBoolean() ) {
1621
throw new UnsupportedOperationException( message );
1722
}
1823
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package org.fugerit.java.core.db.daogen;
2+
3+
import org.fugerit.java.core.lang.helpers.Wrapper;
4+
import org.fugerit.java.core.lang.helpers.WrapperHelper;
5+
6+
public class BasicWrapperNG<T> implements Wrapper<T> {
7+
8+
private T wrapped;
9+
10+
@Override
11+
public T unwrapModel() {
12+
return wrapped;
13+
}
14+
15+
@Override
16+
public void wrapModel(T wrapped) {
17+
this.wrapped = wrapped;
18+
}
19+
20+
public BasicWrapperNG(T wrapped) {
21+
super();
22+
this.wrapped = wrapped;
23+
}
24+
25+
@Override
26+
public String toString() {
27+
return this.getClass().getSimpleName()+"[wraps:"+unwrapModel().toString()+"]";
28+
}
29+
30+
@Override
31+
public T unwrap() {
32+
return WrapperHelper.unwrap( this.wrapped );
33+
}
34+
35+
}

fj-core/src/main/java/org/fugerit/java/core/io/ObjectIO.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public static Object fullSerializationTest( Object value ) throws IOException {
1818
public static Object deserialize( byte[] data ) throws IOException {
1919
Object res = null;
2020
try ( ObjectInputStream ois = new ObjectInputStream( new ByteArrayInputStream( data ) ) ) {
21-
res = HelperIOException.get( () -> ois.readObject() );
21+
res = HelperIOException.get( ois::readObject );
2222
log.info( "deserializeTest, read object : {}", res );
2323
}
2424
return res;

fj-core/src/test/java/test/org/fugerit/java/core/db/dao/daogen/TestBasicDataFacade.java

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,20 @@
11
package test.org.fugerit.java.core.db.dao.daogen;
22

3-
import java.io.Serializable;
4-
import java.math.BigDecimal;
5-
3+
import lombok.extern.slf4j.Slf4j;
64
import org.fugerit.java.core.db.dao.DAOException;
75
import org.fugerit.java.core.db.dao.DAORuntimeException;
86
import org.fugerit.java.core.db.dao.FieldList;
9-
import org.fugerit.java.core.db.daogen.BasicDaoResult;
10-
import org.fugerit.java.core.db.daogen.BasicDataFacade;
11-
import org.fugerit.java.core.db.daogen.BasicWrapper;
12-
import org.fugerit.java.core.db.daogen.CloseableDAOContextSC;
13-
import org.fugerit.java.core.db.daogen.DataEntityInfo;
14-
import org.fugerit.java.core.db.daogen.DataEntityUtils;
15-
import org.fugerit.java.core.db.daogen.QueryHelper;
7+
import org.fugerit.java.core.db.daogen.*;
168
import org.fugerit.java.core.function.SafeFunction;
179
import org.junit.Assert;
1810
import org.junit.Test;
19-
20-
import lombok.extern.slf4j.Slf4j;
2111
import test.org.fugerit.java.BasicTest;
2212
import test.org.fugerit.java.core.db.TestBasicDBHelper;
2313
import test.org.fugerit.java.core.db.dao.ModelUser;
2414

15+
import java.io.Serializable;
16+
import java.math.BigDecimal;
17+
2518
@Slf4j
2619
public class TestBasicDataFacade extends TestBasicDBHelper implements Serializable {
2720

@@ -85,8 +78,10 @@ public void testBasicDataFacade2() {
8578
log.info( "test 1 : {}", userWrapper.unwrap() );
8679
log.info( "test 2 : {}", userWrapper.unwrapModel() );
8780
log.info( "test 3 : {}", HELPER.fullSerializationTest( userWrapper ) );
81+
log.info( "test 4 : {}", userWrapper );
8882
userWrapper.wrapModel( userTest );
8983
Assert.assertThrows( UnsupportedOperationException.class , () -> BasicWrapper.throwUnsupported( "message" ) );
84+
userWrapper.wrapModel( userTest );
9085
// test DataEntityUtils
9186
DataEntityUtils.unwrap( facade );
9287
Assert.assertThrows( DAOException.class , () -> DataEntityUtils.unwrap( userTest ) );
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package test.org.fugerit.java.core.db.dao.daogen;
2+
3+
import lombok.extern.slf4j.Slf4j;
4+
import org.fugerit.java.core.db.daogen.BasicHelper;
5+
import org.fugerit.java.core.db.daogen.BasicWrapperNG;
6+
import org.fugerit.java.core.function.SafeFunction;
7+
import org.junit.Assert;
8+
import org.junit.Test;
9+
import test.org.fugerit.java.BasicTest;
10+
import test.org.fugerit.java.core.db.dao.ModelUser;
11+
12+
import java.io.NotSerializableException;
13+
14+
@Slf4j
15+
public class TestBasicWrapperNG {
16+
17+
private static final BasicTest HELPER = new BasicTest();
18+
19+
@Test
20+
public void testBasicWrapperNG() {
21+
SafeFunction.apply( () -> {
22+
ModelUser userTest = new ModelUser();
23+
// wrapper ng
24+
BasicWrapperNG<ModelUser> userWrapperNG = new BasicWrapperNG<>( userTest );
25+
log.info( "test 1 : {}", userWrapperNG.unwrap() );
26+
log.info( "test 2 : {}", userWrapperNG.unwrapModel() );
27+
log.info( "test 3 : {}", userWrapperNG );
28+
userWrapperNG.wrapModel( userTest );
29+
Assert.assertThrows(NotSerializableException.class, () -> HELPER.fullSerializationTest( userWrapperNG ));
30+
BasicHelper.throwUnsupported( "test 0", () -> false ); // will not throw unsupported operation
31+
Assert.assertThrows( UnsupportedOperationException.class, () -> BasicHelper.throwUnsupported( "test 1" ) );
32+
} );
33+
}
34+
35+
}

0 commit comments

Comments
 (0)