### Question:
MotorcycleFlagEncoder extends CarFlagEncoder { @Override public IntsRef handleWayTags(IntsRef edgeFlags, ReaderWay way, EncodingManager.Access accept) { if (accept.canSkip()) return edgeFlags; if (!accept.isFerry()) { double speed = getSpeed(way); speed = applyMaxSpeed(way, speed); double maxMCSpeed = parseSpeed(way.getTag("maxspeed:motorcycle")); if (maxMCSpeed > 0 && maxMCSpeed < speed) speed = maxMCSpeed * 0.9; if (speed > 30 && way.hasTag("surface", badSurfaceSpeedMap)) speed = 30; boolean isRoundabout = roundaboutEnc.getBool(false, edgeFlags); if (way.hasTag("oneway", oneways) || isRoundabout) { if (way.hasTag("oneway", "-1")) { accessEnc.setBool(true, edgeFlags, true); setSpeed(true, edgeFlags, speed); } else { accessEnc.setBool(false, edgeFlags, true); setSpeed(false, edgeFlags, speed); } } else { accessEnc.setBool(false, edgeFlags, true); accessEnc.setBool(true, edgeFlags, true); setSpeed(false, edgeFlags, speed); setSpeed(true, edgeFlags, speed); } } else { accessEnc.setBool(false, edgeFlags, true); accessEnc.setBool(true, edgeFlags, true); double ferrySpeed = getFerrySpeed(way); setSpeed(false, edgeFlags, ferrySpeed); setSpeed(true, edgeFlags, ferrySpeed); } priorityWayEncoder.setDecimal(false, edgeFlags, PriorityCode.getFactor(handlePriority(way))); curvatureEncoder.setDecimal(false, edgeFlags, PriorityCode.getFactor(10)); return edgeFlags; } MotorcycleFlagEncoder();  MotorcycleFlagEncoder(PMap properties);  MotorcycleFlagEncoder(String propertiesStr);  MotorcycleFlagEncoder(int speedBits, double speedFactor, int maxTurnCosts); @Override int getVersion(); @Override void createEncodedValues(List<EncodedValue> registerNewEncodedValue, String prefix, int index); @Override EncodingManager.Access getAccess(ReaderWay way); @Override IntsRef handleWayTags(IntsRef edgeFlags, ReaderWay way, EncodingManager.Access accept); @Override void applyWayTags(ReaderWay way, EdgeIteratorState edge); @Override boolean supports(Class<?> feature); @Override String toString();  }### Answer:
@Test public void testHandleWayTags() { ReaderWay way = new ReaderWay(1); way.setTag("highway", "service"); assertTrue(encoder.getAccess(way).isWay()); IntsRef edgeFlags = encoder.handleWayTags(em.createEdgeFlags(), way, EncodingManager.Access.WAY); assertEquals(20, encoder.getSpeed(edgeFlags), .1); assertEquals(20, encoder.getSpeed(true, edgeFlags), .1); }