2020public class SamplingMessageServiceImpl implements SamplingMessageService {
2121
2222 private final DatabaseAccessObject databaseAccessObject ;
23+ private final ContractValidator contractValidator ;
2324
24- public SamplingMessageServiceImpl (DatabaseAccessObject databaseAccessObject ) {
25+ public SamplingMessageServiceImpl (final DatabaseAccessObject databaseAccessObject , final ContractValidator contractValidator ) {
2526 this .databaseAccessObject = databaseAccessObject ;
27+ this .contractValidator = contractValidator ;
2628 }
2729
28- private static boolean isInvalidMessageName (@ NonNull final String messageName ) {
29- return (messageName == null || messageName .length () > ServiceConfig .MAXIMUM_SAMPLING_MESSAGE_NAME_SIZE ); // messageName.isEmpty());
30- }
31-
32- private static boolean isInvalidMessageContent (@ NonNull final String messageContent ) {
33- return (messageContent == null || messageContent .length () > ServiceConfig .MAXIMUM_SAMPLING_MESSAGE_CONTENT_SIZE ); // messageContent.isEmpty();
34- }
3530
36- private static boolean isValid (@ NonNull final Instant creationTime , @ NonNull final Duration lifetime ) {
37- return Instant .now ().isBefore (creationTime .plus (lifetime ));
38- }
3931
4032 @ Override
4133 public void createSamplingMessage (@ NonNull final String messageName , @ NonNull final Long lifetimeInSec ) throws SamplingMessageCountExceededException , SamplingMessageAlreadyExistsException , IllegalParameterException {
42- if (isInvalidMessageName (messageName ))
34+ if (contractValidator . isInvalidMessageName (messageName ))
4335 throw new IllegalParameterException (String .format ("Invalid messageName provided: %s" , messageName ));
4436
4537 final long totalMessageCount = databaseAccessObject .getTotalMessageCount ();
46- if (totalMessageCount >= ServiceConfig . MAXIMUM_SAMPLING_MESSAGE_COUNT )
47- throw new SamplingMessageCountExceededException (String .format ("Exceeded Number of Sampling Messages currently holding %s maximum is %s" , totalMessageCount , ServiceConfig .MAXIMUM_SAMPLING_MESSAGE_COUNT ));
38+ if (contractValidator . isMessageCountExceeded ( totalMessageCount ) )
39+ throw new SamplingMessageCountExceededException (String .format ("Exceeded Number of Sampling Messages currently holding %s maximum is %s" , totalMessageCount , ServiceConfig .DEFAULT_MAXIMUM_SAMPLING_MESSAGE_COUNT ));
4840
4941 final DatabaseSamplingMessage databaseSamplingMessage = DatabaseSamplingMessage
5042 .builder ()
@@ -64,10 +56,10 @@ public void createSamplingMessage(@NonNull final String messageName, @NonNull fi
6456
6557 @ Override
6658 public void writeSamplingMessage (@ NonNull final String messageName , @ NonNull final String messageContent ) throws SamplingMessageNotFoundException , IllegalParameterException {
67- if (isInvalidMessageName (messageName ))
59+ if (contractValidator . isInvalidMessageName (messageName ))
6860 throw new IllegalParameterException (String .format ("Invalid messageName provided: %s" , messageName ));
6961
70- if (isInvalidMessageContent (messageContent ))
62+ if (contractValidator . isInvalidMessageContent (messageContent ))
7163 throw new IllegalParameterException (String .format ("Invalid messageContent provided: %s" , messageContent ));
7264
7365 try {
@@ -79,7 +71,7 @@ public void writeSamplingMessage(@NonNull final String messageName, @NonNull fin
7971
8072 @ Override
8173 public void clearSamplingMessage (@ NonNull final String messageName ) throws SamplingMessageNotFoundException , IllegalParameterException {
82- if (isInvalidMessageName (messageName ))
74+ if (contractValidator . isInvalidMessageName (messageName ))
8375 throw new IllegalParameterException (String .format ("Invalid messageName provided: %s" , messageName ));
8476
8577 final DatabaseSamplingMessage databaseSamplingMessage ;
@@ -96,7 +88,7 @@ public void clearSamplingMessage(@NonNull final String messageName) throws Sampl
9688
9789 @ Override
9890 public SamplingMessage readSamplingMessage (@ NonNull final String messageName ) throws SamplingMessageNotFoundException , IllegalParameterException {
99- if (isInvalidMessageName (messageName ))
91+ if (contractValidator . isInvalidMessageName (messageName ))
10092 throw new IllegalParameterException (String .format ("Invalid messageName provided: %s" , messageName ));
10193
10294 final DatabaseSamplingMessage databaseSamplingMessage ;
@@ -106,12 +98,17 @@ public SamplingMessage readSamplingMessage(@NonNull final String messageName) th
10698 throw new SamplingMessageNotFoundException (e );
10799 }
108100
109- return SamplingMessage .builder ().messageContent (databaseSamplingMessage .getMessageContent ()).messageName (databaseSamplingMessage .getMessageName ()).isValid (isValid (databaseSamplingMessage .getMessageUpdateTimestamp (), databaseSamplingMessage .getMessageLifetimeInSec ())).build ();
101+ return SamplingMessage
102+ .builder ()
103+ .messageContent (databaseSamplingMessage .getMessageContent ())
104+ .messageName (databaseSamplingMessage .getMessageName ())
105+ .isValid (contractValidator .isValid (databaseSamplingMessage .getMessageUpdateTimestamp (), databaseSamplingMessage .getMessageLifetimeInSec ()))
106+ .build ();
110107 }
111108
112109 @ Override
113110 public SamplingMessageStatus getSamplingMessageStatus (@ NonNull final String messageName ) throws SamplingMessageNotFoundException , IllegalParameterException {
114- if (isInvalidMessageName (messageName ))
111+ if (contractValidator . isInvalidMessageName (messageName ))
115112 throw new IllegalParameterException (String .format ("Invalid messageName provided: %s" , messageName ));
116113
117114
@@ -125,14 +122,14 @@ public SamplingMessageStatus getSamplingMessageStatus(@NonNull final String mess
125122 return SamplingMessageStatus
126123 .builder ()
127124 .isEmpty (databaseSamplingMessage .getMessageContent ().isEmpty ())
128- .isValid (isValid (databaseSamplingMessage .getMessageUpdateTimestamp (), databaseSamplingMessage .getMessageLifetimeInSec ()))
125+ .isValid (contractValidator . isValid (databaseSamplingMessage .getMessageUpdateTimestamp (), databaseSamplingMessage .getMessageLifetimeInSec ()))
129126 .build ();
130127
131128 }
132129
133130 @ Override
134131 public void deleteSamplingMessage (@ NonNull final String messageName ) throws SamplingMessageNotFoundException , IllegalParameterException {
135- if (isInvalidMessageName (messageName ))
132+ if (contractValidator . isInvalidMessageName (messageName ))
136133 throw new IllegalParameterException (String .format ("Invalid messageName provided: %s" , messageName ));
137134
138135 try {
0 commit comments