All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.yangcentral.yangkit.model.impl.codec.BitsStringValueCodecImpl Maven / Gradle / Ivy

package org.yangcentral.yangkit.model.impl.codec;

import org.yangcentral.yangkit.base.ErrorCode;
import org.yangcentral.yangkit.model.api.codec.BitsStringValueCodec;
import org.yangcentral.yangkit.model.api.codec.YangCodecException;
import org.yangcentral.yangkit.model.api.restriction.Restriction;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.PatternSyntaxException;

public class BitsStringValueCodecImpl extends StringValueCodecImpl> implements BitsStringValueCodec {
   public List deserialize(Restriction> restriction, String input) throws YangCodecException {
      String[] splitStr;
      try {
         splitStr = input.split(" ");
      } catch (PatternSyntaxException el) {
         throw new YangCodecException(ErrorCode.INVALID_VALUE.getFieldName());
      }
      List ret = new ArrayList<>();
      int length = splitStr.length;

      for(int i = 0; i < length; ++i) {
         String str = splitStr[i];
         str = str.trim();
         if (str.length() > 0) {
            ret.add(str);
         }
      }

      boolean bool = restriction.evaluated(ret);
      if (!bool) {
         throw new YangCodecException(ErrorCode.INVALID_VALUE.getFieldName());
      } else {
         return ret;
      }
   }

   public String serialize(Restriction> restriction, List output) throws YangCodecException {
      boolean bool = restriction.evaluated(output);
      if (!bool) {
         throw new YangCodecException(ErrorCode.INVALID_VALUE.getFieldName());
      } else {
         StringBuilder sb = new StringBuilder();
         for (String str : output) {
            sb.append(str);
            sb.append(" ");
         }

         return sb.toString().trim();
      }
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy