private boolean isIdInvalid(ProcessorContext context) { if (context.resourceId() == null || context.resourceId().isEmpty()) { LOGGER.error("Invalid request, resource id not available. Aborting"); return true; } return !validateUuid(context.resourceId()); }
private MessageResponse processListOfCoursesBySubject() { ProcessorContext context = createContext(); if (context.subjectId() == null || context.subjectId().isEmpty()) { LOGGER.error("invalid Subject Id. "); return MessageResponseFactory.createInvalidRequestResponse("Invalid subject id"); } return new RepoBuilder().buildTaxonomyRepo(context).getListOfCoursesBySubject(); }
private MessageResponse processResourceUpdate() { ProcessorContext context = createContext(); if (isIdInvalid(context)) { return MessageResponseFactory.createInvalidRequestResponse("Invalid request id"); } if (context.request() == null || context.request().isEmpty()) { LOGGER.error("Invalid request, json not available. Aborting"); return MessageResponseFactory.createInvalidRequestResponse("Invalid Json"); } return new RepoBuilder().buildResourceRepo(context).updateResource(); }
private void processCommandSave(ProcessorContext context, DataInputStream dis) throws IOException { GameRecord record = extractGameRecord(context, dis); try { recordServ.saveOrUpdate(record, context.getProductId()); } catch (ServiceException e) { context.setErrorCode(ErrorCode.EC_SERVICE_FAILED); context.setMessage(ErrorCode.getErrorMessage(ErrorCode.EC_SERVICE_FAILED)); throw new RequestProcessException(e); } }
private void processCommandQueryDescList(ProcessorContext context, DataInputStream dis) throws IOException { int accountId = dis.readInt(); int productId = dis.readInt(); try { List<GameRecordDesc> descList = recordServ.queryRecordDescList(accountId, productId); context.setResult(descList); } catch (ServiceException e) { context.setErrorCode(ErrorCode.EC_SERVICE_FAILED); context.setMessage(ErrorCode.getErrorMessage(ErrorCode.EC_SERVICE_FAILED)); throw new RequestProcessException(e); } }
private void processCommandRead(ProcessorContext context, DataInputStream dis) throws IOException { int accountId = dis.readInt(); int productId = dis.readInt(); int recordId = dis.readInt(); try { GameRecord record = recordServ.read(accountId, productId, recordId); context.setResult(record); } catch (ServiceException e) { context.setErrorCode(ErrorCode.EC_SERVICE_FAILED); context.setMessage(ErrorCode.getErrorMessage(ErrorCode.EC_SERVICE_FAILED)); throw new RequestProcessException(e); } }
private GameRecord extractGameRecord(ProcessorContext context, DataInputStream dis) throws IOException { int accountId = dis.readInt(); int productId = dis.readInt(); context.setProductId(productId); int recordId = dis.readInt(); int playDuration = dis.readInt(); int scores = dis.readInt(); String remark = dis.readUTF(); int dataLen = dis.readInt(); byte[] data = null; if (dataLen > 0) { data = new byte[dataLen]; int readLen = 0; int curReadLen = 0; while (readLen < data.length) { curReadLen = dis.read(data, readLen, data.length - readLen); if (curReadLen > 0) { readLen += curReadLen; } } } GameRecord record = new GameRecord(); record.setAccountId(accountId); record.setRecordId(recordId); record.setPlayDuration(playDuration); record.setScores(scores); record.setRemark(remark); record.setTime(new java.util.Date()); record.setData(data); return record; }
@SuppressWarnings("unchecked") private void processCommandQueryDescList(ProcessorContext context, DataOutputStream dos) throws IOException { dos.writeInt(context.getHeadWrapper().getHead()); dos.writeInt(0); /*result*/ List<GameRecordDesc> descList = (List<GameRecordDesc>) context.getResult(); if (descList != null && descList.size() > 0) { dos.writeShort(descList.size()); for (GameRecordDesc desc : descList) { dos.writeInt(desc.getRecordId()); dos.writeInt(desc.getPlayDuration()); dos.writeInt(desc.getScores()); dos.writeUTF(desc.getRemark()); dos.writeUTF(DateFormatUtils.format(desc.getTime(), "yyyy/MM/dd HH:mm:ss")); } } else { dos.writeShort(0); } }
@Override public Mapper process( ProcessorContext context, TypeElement mapperTypeElement, List<SourceMethod> sourceModel) { this.elementUtils = context.getElementUtils(); this.typeUtils = context.getTypeUtils(); this.messager = context.getMessager(); this.options = context.getOptions(); this.versionInformation = context.getVersionInformation(); this.typeFactory = context.getTypeFactory(); MapperConfiguration mapperConfig = MapperConfiguration.getInstanceOn(mapperTypeElement); List<MapperReference> mapperReferences = initReferencedMappers(mapperTypeElement, mapperConfig); MappingBuilderContext ctx = new MappingBuilderContext( typeFactory, elementUtils, typeUtils, messager, options, new MappingResolverImpl( messager, elementUtils, typeUtils, typeFactory, sourceModel, mapperReferences), mapperTypeElement, sourceModel, mapperReferences); this.mappingContext = ctx; return getMapper(mapperTypeElement, mapperConfig, sourceModel); }
@Override public void processRequest(ProcessorContext context, DataInputStream dis) throws IOException { switch (context.getHeadWrapper().getCommand()) { case Constant.RECORD_CMD_SAVE: processCommandSave(context, dis); break; case Constant.RECORD_CMD_READ: processCommandRead(context, dis); break; case Constant.RECORD_CMD_QUERY_DESC_LIST: processCommandQueryDescList(context, dis); break; case Constant.RECORD_CMD_UPDATE: processCommandUpdate(context, dis); break; default: String msg = "无效的协议命令, cmd=" + context.getHeadWrapper().getCommand(); context.setErrorCode(Constant.EC_INVALID_CMD); context.setMessage(msg); throw new RequestProcessException(msg); } }
private void processCommandRead(ProcessorContext context, DataOutputStream dos) throws IOException { dos.writeInt(context.getHeadWrapper().getHead()); GameRecord record = (GameRecord) context.getResult(); if (record != null) { dos.writeInt(0); dos.writeInt(record.getRecordId()); dos.writeInt(record.getPlayDuration()); dos.writeInt(record.getScores()); dos.writeUTF(record.getRemark()); dos.writeUTF(DateFormatUtils.format(record.getTime(), "yyyy/MM/dd HH:mm:ss")); byte[] data = record.getData(); if (data != null && data.length > 0) { dos.writeInt(data.length); dos.write(data, 0, data.length); } else { dos.writeInt(0); } } else { dos.writeInt(Constant.EC_RECORD_NOT_EXIST); dos.writeUTF("游戏记录不存在"); } }
@Override public void processResponse(ProcessorContext context, DataOutputStream dos) throws ServiceException, IOException { switch (context.getHeadWrapper().getCommand()) { case Constant.RECORD_CMD_SAVE: processCommandSave(context, dos); break; case Constant.RECORD_CMD_READ: processCommandRead(context, dos); break; case Constant.RECORD_CMD_QUERY_DESC_LIST: processCommandQueryDescList(context, dos); break; case Constant.RECORD_CMD_UPDATE: processCommandUpdate(context, dos); break; default: break; } }
private void processCommandSave(ProcessorContext context, DataOutputStream dos) throws IOException { dos.writeInt(context.getHeadWrapper().getHead()); dos.writeInt(0); /*result*/ }