├── .github ├── FUNDING.yml └── workflows │ ├── CI.yml │ └── publish-release.yaml ├── .gitignore ├── AUTHORS.txt ├── CHANGES.txt ├── CONTRIBUTING.md ├── LICENSE.txt ├── README.md ├── apl.txt ├── build.gradle ├── cascading-core ├── build.gradle └── src │ ├── jmh │ ├── java │ │ └── cascading │ │ │ ├── InputData.java │ │ │ ├── fields │ │ │ └── FieldsPosCacheBench.java │ │ │ ├── scheme │ │ │ └── util │ │ │ │ ├── DelimitedParserBench.java │ │ │ │ └── NullAppendable.java │ │ │ └── tuple │ │ │ ├── CanonicalBench.java │ │ │ └── CoerceBench.java │ └── resources │ │ └── log4j.properties │ ├── main │ └── java │ │ └── cascading │ │ ├── CascadingException.java │ │ ├── cascade │ │ ├── BaseCascade.java │ │ ├── Cascade.java │ │ ├── CascadeConnector.java │ │ ├── CascadeDef.java │ │ ├── CascadeException.java │ │ ├── CascadeListener.java │ │ ├── CascadeProps.java │ │ ├── Cascades.java │ │ └── planner │ │ │ ├── FlowGraph.java │ │ │ ├── IdentifierGraph.java │ │ │ ├── TapGraph.java │ │ │ └── TopologyGraph.java │ │ ├── flow │ │ ├── AssemblyPlanner.java │ │ ├── BaseFlow.java │ │ ├── Flow.java │ │ ├── FlowConnector.java │ │ ├── FlowConnectorProps.java │ │ ├── FlowDef.java │ │ ├── FlowDescriptors.java │ │ ├── FlowElement.java │ │ ├── FlowElements.java │ │ ├── FlowException.java │ │ ├── FlowListener.java │ │ ├── FlowNode.java │ │ ├── FlowNodeDescriptors.java │ │ ├── FlowProcess.java │ │ ├── FlowProcessWrapper.java │ │ ├── FlowProps.java │ │ ├── FlowRuntimeProps.java │ │ ├── FlowSession.java │ │ ├── FlowSkipIfSinkExists.java │ │ ├── FlowSkipIfSinkNotStale.java │ │ ├── FlowSkipStrategy.java │ │ ├── FlowStep.java │ │ ├── FlowStepDescriptors.java │ │ ├── FlowStepListener.java │ │ ├── FlowStepStrategy.java │ │ ├── FlowTapException.java │ │ ├── Flows.java │ │ ├── SliceCounters.java │ │ ├── StepCounters.java │ │ ├── planner │ │ │ ├── AssemblyPlannerContext.java │ │ │ ├── BaseFlowNode.java │ │ │ ├── BaseFlowNodeFactory.java │ │ │ ├── BaseFlowStep.java │ │ │ ├── BaseFlowStepFactory.java │ │ │ ├── DeclaresResults.java │ │ │ ├── ElementGraphException.java │ │ │ ├── FlowPlanner.java │ │ │ ├── FlowStepJob.java │ │ │ ├── PlannerContext.java │ │ │ ├── PlannerException.java │ │ │ ├── PlannerInfo.java │ │ │ ├── PlatformInfo.java │ │ │ ├── Scope.java │ │ │ ├── ScopedElement.java │ │ │ ├── graph │ │ │ │ ├── AnnotatedDecoratedElementGraph.java │ │ │ │ ├── AnnotatedGraph.java │ │ │ │ ├── BaseAnnotatedElementGraph.java │ │ │ │ ├── BaseElementGraph.java │ │ │ │ ├── BoundedElementMultiGraph.java │ │ │ │ ├── DecoratedElementGraph.java │ │ │ │ ├── ElementDirectedGraph.java │ │ │ │ ├── ElementGraph.java │ │ │ │ ├── ElementGraphs.java │ │ │ │ ├── ElementMaskSubGraph.java │ │ │ │ ├── ElementMultiGraph.java │ │ │ │ ├── ElementSubGraph.java │ │ │ │ ├── Extent.java │ │ │ │ ├── FlowElementGraph.java │ │ │ │ ├── IgnoreAnnotationsHashSet.java │ │ │ │ └── IgnoresAnnotationsElementGraph.java │ │ │ ├── iso │ │ │ │ ├── ElementAnnotation.java │ │ │ │ ├── GraphResult.java │ │ │ │ ├── assertion │ │ │ │ │ ├── Asserted.java │ │ │ │ │ └── GraphAssert.java │ │ │ │ ├── expression │ │ │ │ │ ├── AndElementExpression.java │ │ │ │ │ ├── AnnotationExpression.java │ │ │ │ │ ├── ElementCapture.java │ │ │ │ │ ├── ElementExpression.java │ │ │ │ │ ├── Expression.java │ │ │ │ │ ├── ExpressionGraph.java │ │ │ │ │ ├── FlowElementExpression.java │ │ │ │ │ ├── JoinEdgesSameSourceScopeExpression.java │ │ │ │ │ ├── NonSafeOperationExpression.java │ │ │ │ │ ├── NotElementExpression.java │ │ │ │ │ ├── OperationExpression.java │ │ │ │ │ ├── OrElementExpression.java │ │ │ │ │ ├── OrdinalScopeExpression.java │ │ │ │ │ ├── PathScopeExpression.java │ │ │ │ │ ├── PlannerLevelElementExpression.java │ │ │ │ │ ├── PlannerLevelPipeExpressionGraph.java │ │ │ │ │ ├── ScopeExpression.java │ │ │ │ │ └── TypeExpression.java │ │ │ │ ├── finder │ │ │ │ │ ├── FinderContext.java │ │ │ │ │ ├── GraphFinder.java │ │ │ │ │ ├── GraphFinderException.java │ │ │ │ │ ├── IndexedElementGraph.java │ │ │ │ │ ├── IndexedGraph.java │ │ │ │ │ ├── IndexedMatchGraph.java │ │ │ │ │ ├── Match.java │ │ │ │ │ ├── SearchOrder.java │ │ │ │ │ └── State.java │ │ │ │ ├── subgraph │ │ │ │ │ ├── GraphPartitioner.java │ │ │ │ │ ├── Partitions.java │ │ │ │ │ ├── SubGraphIterator.java │ │ │ │ │ ├── iterator │ │ │ │ │ │ ├── ExpressionSubGraphIterator.java │ │ │ │ │ │ ├── IncludeRemainderSubGraphIterator.java │ │ │ │ │ │ └── UniquePathSubGraphIterator.java │ │ │ │ │ └── partitioner │ │ │ │ │ │ ├── ExpressionGraphPartitioner.java │ │ │ │ │ │ ├── UniquePathGraphPartitioner.java │ │ │ │ │ │ └── WholeGraphPartitioner.java │ │ │ │ └── transformer │ │ │ │ │ ├── AnnotateGraphTransformer.java │ │ │ │ │ ├── ContractedGraphTransformer.java │ │ │ │ │ ├── ContractedTransformer.java │ │ │ │ │ ├── ElementFactory.java │ │ │ │ │ ├── GraphTransformer.java │ │ │ │ │ ├── InsertionGraphTransformer.java │ │ │ │ │ ├── MutateGraphTransformer.java │ │ │ │ │ ├── RecursiveGraphTransformer.java │ │ │ │ │ ├── RemoveBranchGraphTransformer.java │ │ │ │ │ ├── ReplaceGraphFactoryBasedTransformer.java │ │ │ │ │ ├── ReplaceGraphTransformer.java │ │ │ │ │ ├── SubGraphTransformer.java │ │ │ │ │ └── Transformed.java │ │ │ ├── process │ │ │ │ ├── BaseProcessGraph.java │ │ │ │ ├── FlowNodeFactory.java │ │ │ │ ├── FlowNodeGraph.java │ │ │ │ ├── FlowStepFactory.java │ │ │ │ ├── FlowStepGraph.java │ │ │ │ ├── ProcessEdge.java │ │ │ │ ├── ProcessGraph.java │ │ │ │ ├── ProcessGraphs.java │ │ │ │ ├── ProcessModel.java │ │ │ │ └── ProcessModels.java │ │ │ └── rule │ │ │ │ ├── ExecAction.java │ │ │ │ ├── PlanPhase.java │ │ │ │ ├── ProcessLevel.java │ │ │ │ ├── Rule.java │ │ │ │ ├── RuleAssert.java │ │ │ │ ├── RuleExec.java │ │ │ │ ├── RuleExpression.java │ │ │ │ ├── RuleMode.java │ │ │ │ ├── RulePartitioner.java │ │ │ │ ├── RuleRegistry.java │ │ │ │ ├── RuleRegistrySet.java │ │ │ │ ├── RuleResult.java │ │ │ │ ├── RuleSetExec.java │ │ │ │ ├── RuleTransformer.java │ │ │ │ ├── ScopeResolver.java │ │ │ │ ├── TransformException.java │ │ │ │ ├── UnsupportedPlanException.java │ │ │ │ ├── annotator │ │ │ │ ├── BlockingHashJoinAnnotator.java │ │ │ │ ├── HashJoinBlockingHashJoinAnnotator.java │ │ │ │ └── LogicalMergeAnnotator.java │ │ │ │ ├── assertion │ │ │ │ ├── BufferAfterEveryAssert.java │ │ │ │ ├── EveryAfterBufferAssert.java │ │ │ │ ├── LoneGroupAssert.java │ │ │ │ ├── MissingGroupAssert.java │ │ │ │ └── SplitBeforeEveryAssert.java │ │ │ │ ├── elementexpression │ │ │ │ ├── BoundariesElementExpression.java │ │ │ │ ├── GroupOrMergeElementExpression.java │ │ │ │ └── TapOrBoundaryElementExpression.java │ │ │ │ ├── expression │ │ │ │ ├── BufferAfterEveryExpression.java │ │ │ │ ├── EveryAfterBufferExpression.java │ │ │ │ ├── LogicalMergeAnnotatorExpression.java │ │ │ │ ├── LoneGroupExpression.java │ │ │ │ ├── MissingGroupExpression.java │ │ │ │ ├── NoOpPipeExpression.java │ │ │ │ ├── NoOpPipeMultiGraphExpression.java │ │ │ │ ├── NonBlockedBlockedJoinAnnotatorExpression.java │ │ │ │ ├── NonBlockedBlockedJoinJoinAnnotatorExpression.java │ │ │ │ ├── PlannerLevelExpression.java │ │ │ │ └── SplitBeforeEveryExpression.java │ │ │ │ ├── expressiongraph │ │ │ │ ├── ConsecutiveNoOpPipesExpressionGraph.java │ │ │ │ ├── ConsecutiveTapsExpressionGraph.java │ │ │ │ ├── DualStreamedAccumulatedExpressionGraph.java │ │ │ │ ├── GroupTapExpressionGraph.java │ │ │ │ ├── LogicalMergeExpressionGraph.java │ │ │ │ ├── MultiTapGroupExpressionGraph.java │ │ │ │ ├── NoCoGroupJoinTapExpressionGraph.java │ │ │ │ ├── NoGroupJoinMergeBoundaryTapExpressionGraph.java │ │ │ │ ├── NoGroupJoinTapExpressionGraph.java │ │ │ │ ├── NoGroupMergeTapExpressionGraph.java │ │ │ │ ├── NoGroupTapExpressionGraph.java │ │ │ │ ├── NoMergeTapExpressionGraph.java │ │ │ │ ├── NoOpPipeExpressionGraph.java │ │ │ │ ├── NonBlockedBlockedJoinExpressionGraph.java │ │ │ │ ├── NonBlockedBlockedJoinJoinExpressionGraph.java │ │ │ │ ├── NonSafeAndSplitAndSyncPipeExpressionGraph.java │ │ │ │ ├── OnlyPipeExpressionGraph.java │ │ │ │ ├── SplicePipeExpressionGraph.java │ │ │ │ ├── SyncPipeExpressionGraph.java │ │ │ │ └── TapGroupTapExpressionGraph.java │ │ │ │ ├── partitioner │ │ │ │ ├── ExpressionRulePartitioner.java │ │ │ │ ├── UniquePathRulePartitioner.java │ │ │ │ ├── WholeGraphNodePartitioner.java │ │ │ │ ├── WholeGraphRulePartitioner.java │ │ │ │ └── WholeGraphStepPartitioner.java │ │ │ │ ├── transformer │ │ │ │ ├── ApplyAssertionLevelTransformer.java │ │ │ │ ├── ApplyDebugLevelTransformer.java │ │ │ │ ├── BoundaryElementFactory.java │ │ │ │ ├── IntermediatePipeElementFactory.java │ │ │ │ ├── IntermediateTapElementFactory.java │ │ │ │ ├── NoOpPipeMultiGraphTransformer.java │ │ │ │ ├── RemoveNoOpPipeTransformer.java │ │ │ │ ├── RuleAnnotationTransformer.java │ │ │ │ ├── RuleContractedTransformer.java │ │ │ │ ├── RuleInsertionTransformer.java │ │ │ │ ├── RuleRemoveBranchTransformer.java │ │ │ │ ├── RuleReplaceFactoryBasedTransformer.java │ │ │ │ └── RuleReplaceTransformer.java │ │ │ │ └── util │ │ │ │ ├── LogLevel.java │ │ │ │ ├── ResultTree.java │ │ │ │ ├── RuleLogUtil.java │ │ │ │ └── TraceWriter.java │ │ ├── process │ │ │ ├── ProcessFlow.java │ │ │ └── ProcessFlowStep.java │ │ └── stream │ │ │ ├── StopDataNotificationException.java │ │ │ ├── TrapException.java │ │ │ ├── annotations │ │ │ ├── BlockingMode.java │ │ │ ├── RoleMode.java │ │ │ └── StreamMode.java │ │ │ ├── duct │ │ │ ├── CloseReducingDuct.java │ │ │ ├── CloseWindow.java │ │ │ ├── Collapsing.java │ │ │ ├── Duct.java │ │ │ ├── DuctException.java │ │ │ ├── DuctGraph.java │ │ │ ├── Fork.java │ │ │ ├── Gate.java │ │ │ ├── Grouping.java │ │ │ ├── OpenDuct.java │ │ │ ├── OpenReducingDuct.java │ │ │ ├── OpenWindow.java │ │ │ ├── OrdinalDuct.java │ │ │ ├── Reducing.java │ │ │ ├── Stage.java │ │ │ └── Window.java │ │ │ ├── element │ │ │ ├── AggregatorEveryStage.java │ │ │ ├── BoundaryStage.java │ │ │ ├── BufferEveryWindow.java │ │ │ ├── EachStage.java │ │ │ ├── ElementDuct.java │ │ │ ├── ElementFlowProcess.java │ │ │ ├── ElementStage.java │ │ │ ├── EveryStage.java │ │ │ ├── FilterEachStage.java │ │ │ ├── FunctionEachStage.java │ │ │ ├── GroupAssertionEveryStage.java │ │ │ ├── GroupingSpliceGate.java │ │ │ ├── InputSource.java │ │ │ ├── MemoryCoGroupClosure.java │ │ │ ├── MemoryCoGroupGate.java │ │ │ ├── MemoryHashJoinGate.java │ │ │ ├── MemorySpliceGate.java │ │ │ ├── MergeStage.java │ │ │ ├── OperatorStage.java │ │ │ ├── SinkStage.java │ │ │ ├── SourceStage.java │ │ │ ├── SpliceGate.java │ │ │ ├── TrapHandler.java │ │ │ └── ValueAssertionEachStage.java │ │ │ ├── graph │ │ │ ├── IORole.java │ │ │ ├── NodeStreamGraph.java │ │ │ └── StreamGraph.java │ │ │ └── util │ │ │ └── SparseTupleComparator.java │ │ ├── management │ │ ├── CascadingServices.java │ │ ├── DocumentService.java │ │ ├── DocumentServiceException.java │ │ ├── MetricsService.java │ │ ├── UnitOfWork.java │ │ ├── UnitOfWorkExecutorStrategy.java │ │ ├── UnitOfWorkSpawnStrategy.java │ │ ├── annotation │ │ │ ├── Order.java │ │ │ ├── Property.java │ │ │ ├── PropertyConfigured.java │ │ │ ├── PropertyDescription.java │ │ │ ├── PropertyOrder.java │ │ │ ├── PropertyRegexSanitizer.java │ │ │ ├── PropertySanitizer.java │ │ │ ├── Sanitizer.java │ │ │ ├── URISanitizer.java │ │ │ └── Visibility.java │ │ └── state │ │ │ ├── BaseState.java │ │ │ └── ClientState.java │ │ ├── operation │ │ ├── Aggregator.java │ │ ├── AggregatorCall.java │ │ ├── Assertion.java │ │ ├── AssertionException.java │ │ ├── AssertionLevel.java │ │ ├── BaseOperation.java │ │ ├── Buffer.java │ │ ├── BufferCall.java │ │ ├── CompositeFunction.java │ │ ├── ConcreteCall.java │ │ ├── Debug.java │ │ ├── DebugLevel.java │ │ ├── Filter.java │ │ ├── FilterCall.java │ │ ├── Function.java │ │ ├── FunctionCall.java │ │ ├── GroupAssertion.java │ │ ├── GroupAssertionCall.java │ │ ├── Identity.java │ │ ├── Insert.java │ │ ├── NoOp.java │ │ ├── Operation.java │ │ ├── OperationCall.java │ │ ├── OperationException.java │ │ ├── PlannedOperation.java │ │ ├── PlannerLevel.java │ │ ├── SerFunction.java │ │ ├── SerPredicate.java │ │ ├── ValueAssertion.java │ │ ├── ValueAssertionCall.java │ │ ├── aggregator │ │ │ ├── Average.java │ │ │ ├── Count.java │ │ │ ├── ExtentBase.java │ │ │ ├── ExtremaValueBase.java │ │ │ ├── First.java │ │ │ ├── Last.java │ │ │ ├── MaxValue.java │ │ │ ├── MinValue.java │ │ │ └── Sum.java │ │ ├── assertion │ │ │ ├── AssertEquals.java │ │ │ ├── AssertEqualsAll.java │ │ │ ├── AssertGroupBase.java │ │ │ ├── AssertGroupSizeEquals.java │ │ │ ├── AssertGroupSizeLessThan.java │ │ │ ├── AssertGroupSizeMoreThan.java │ │ │ ├── AssertMatches.java │ │ │ ├── AssertMatchesAll.java │ │ │ ├── AssertNotEquals.java │ │ │ ├── AssertNotNull.java │ │ │ ├── AssertNull.java │ │ │ ├── AssertSizeEquals.java │ │ │ ├── AssertSizeLessThan.java │ │ │ ├── AssertSizeMoreThan.java │ │ │ └── BaseAssertion.java │ │ ├── buffer │ │ │ └── FirstNBuffer.java │ │ ├── filter │ │ │ ├── And.java │ │ │ ├── FilterNotNull.java │ │ │ ├── FilterNull.java │ │ │ ├── Limit.java │ │ │ ├── Logic.java │ │ │ ├── Not.java │ │ │ ├── Or.java │ │ │ ├── Sample.java │ │ │ ├── Stop.java │ │ │ └── Xor.java │ │ ├── function │ │ │ ├── SetValue.java │ │ │ └── UnGroup.java │ │ ├── hash │ │ │ ├── Base10HashFunction.java │ │ │ ├── Base64HashFunction.java │ │ │ ├── Base64URLHashFunction.java │ │ │ └── BaseHashFunction.java │ │ ├── regex │ │ │ ├── RegexFilter.java │ │ │ ├── RegexGenerator.java │ │ │ ├── RegexMatcher.java │ │ │ ├── RegexOperation.java │ │ │ ├── RegexParser.java │ │ │ ├── RegexReplace.java │ │ │ ├── RegexSplitGenerator.java │ │ │ └── RegexSplitter.java │ │ ├── state │ │ │ ├── Counter.java │ │ │ └── Status.java │ │ └── text │ │ │ ├── DateFormatter.java │ │ │ ├── DateOperation.java │ │ │ ├── DateParser.java │ │ │ ├── FieldFormatter.java │ │ │ └── FieldJoiner.java │ │ ├── pipe │ │ ├── Boundary.java │ │ ├── Checkpoint.java │ │ ├── CoGroup.java │ │ ├── Each.java │ │ ├── Every.java │ │ ├── Group.java │ │ ├── GroupBy.java │ │ ├── HashJoin.java │ │ ├── Merge.java │ │ ├── Operator.java │ │ ├── OperatorException.java │ │ ├── Pipe.java │ │ ├── Splice.java │ │ ├── SubAssembly.java │ │ ├── assembly │ │ │ ├── AggregateBy.java │ │ │ ├── AggregateByLocally.java │ │ │ ├── AggregateByLocallyProps.java │ │ │ ├── AggregateByProps.java │ │ │ ├── AverageBy.java │ │ │ ├── AverageByLocally.java │ │ │ ├── Coerce.java │ │ │ ├── Copy.java │ │ │ ├── CountBy.java │ │ │ ├── CountByLocally.java │ │ │ ├── Discard.java │ │ │ ├── FirstBy.java │ │ │ ├── MaxBy.java │ │ │ ├── MaxByLocally.java │ │ │ ├── MinBy.java │ │ │ ├── MinByLocally.java │ │ │ ├── Rename.java │ │ │ ├── Retain.java │ │ │ ├── SumBy.java │ │ │ ├── SumByLocally.java │ │ │ ├── Unique.java │ │ │ └── UniqueProps.java │ │ └── joiner │ │ │ ├── BaseJoiner.java │ │ │ ├── BufferJoin.java │ │ │ ├── InnerJoin.java │ │ │ ├── Joiner.java │ │ │ ├── JoinerClosure.java │ │ │ ├── LeftJoin.java │ │ │ ├── MixedJoin.java │ │ │ ├── OuterJoin.java │ │ │ └── RightJoin.java │ │ ├── property │ │ ├── AppProps.java │ │ ├── ConfigDef.java │ │ ├── PropertyUtil.java │ │ ├── Props.java │ │ └── UnitOfWorkDef.java │ │ ├── provider │ │ ├── CascadingFactory.java │ │ ├── CascadingService.java │ │ ├── ChildFirstURLClassLoader.java │ │ ├── FactoryLoader.java │ │ ├── ProviderLoader.java │ │ └── ServiceLoader.java │ │ ├── scheme │ │ ├── ConcreteCall.java │ │ ├── FileFormat.java │ │ ├── NullScheme.java │ │ ├── Scheme.java │ │ ├── SinkCall.java │ │ ├── SourceCall.java │ │ └── util │ │ │ ├── DelimitedParser.java │ │ │ └── FieldTypeResolver.java │ │ ├── stats │ │ ├── BaseCachedNodeStats.java │ │ ├── BaseCachedStepStats.java │ │ ├── CascadeStats.java │ │ ├── CascadingStats.java │ │ ├── CounterCache.java │ │ ├── FlowNodeStats.java │ │ ├── FlowSliceStats.java │ │ ├── FlowStats.java │ │ ├── FlowStepStats.java │ │ ├── ProvidesCounters.java │ │ ├── StatsListener.java │ │ └── process │ │ │ ├── ProcessFlowStats.java │ │ │ └── ProcessStepStats.java │ │ ├── tap │ │ ├── AdaptorTap.java │ │ ├── CompositeTap.java │ │ ├── CompositeTaps.java │ │ ├── DecoratorTap.java │ │ ├── FileAdaptorTap.java │ │ ├── MultiSinkTap.java │ │ ├── MultiSourceTap.java │ │ ├── SinkMode.java │ │ ├── SinkTap.java │ │ ├── SourceTap.java │ │ ├── Tap.java │ │ ├── TapException.java │ │ ├── TrapProps.java │ │ ├── partition │ │ │ ├── BasePartitionTap.java │ │ │ ├── DelimitedPartition.java │ │ │ ├── NamedPartition.java │ │ │ ├── Partition.java │ │ │ ├── PartitionTapFilter.java │ │ │ ├── PartitionTapProps.java │ │ │ └── PartitionTupleEntryIterator.java │ │ └── type │ │ │ ├── FileType.java │ │ │ └── TapWith.java │ │ ├── tuple │ │ ├── Comparison.java │ │ ├── Fields.java │ │ ├── FieldsResolverException.java │ │ ├── Hasher.java │ │ ├── StreamComparator.java │ │ ├── Tuple.java │ │ ├── TupleChainIterable.java │ │ ├── TupleChainIterator.java │ │ ├── TupleEntry.java │ │ ├── TupleEntryChainIterator.java │ │ ├── TupleEntryCollector.java │ │ ├── TupleEntryIterableChainIterator.java │ │ ├── TupleEntryIterator.java │ │ ├── TupleEntrySchemeCollector.java │ │ ├── TupleEntrySchemeIterator.java │ │ ├── TupleEntrySchemeIteratorProps.java │ │ ├── TupleEntryStream.java │ │ ├── TupleException.java │ │ ├── TupleStream.java │ │ ├── Tuples.java │ │ ├── coerce │ │ │ ├── BigDecimalCoerce.java │ │ │ ├── BooleanCoerce.java │ │ │ ├── BooleanObjectCoerce.java │ │ │ ├── CharacterCoerce.java │ │ │ ├── CharacterObjectCoerce.java │ │ │ ├── Coercions.java │ │ │ ├── DoubleCoerce.java │ │ │ ├── DoubleObjectCoerce.java │ │ │ ├── FloatCoerce.java │ │ │ ├── FloatObjectCoerce.java │ │ │ ├── IntegerCoerce.java │ │ │ ├── IntegerObjectCoerce.java │ │ │ ├── LongCoerce.java │ │ │ ├── LongObjectCoerce.java │ │ │ ├── NumberCoerce.java │ │ │ ├── ObjectCoerce.java │ │ │ ├── ShortCoerce.java │ │ │ ├── ShortObjectCoerce.java │ │ │ └── StringCoerce.java │ │ ├── collect │ │ │ ├── Spillable.java │ │ │ ├── SpillableProps.java │ │ │ ├── SpillableTupleList.java │ │ │ ├── SpillableTupleMap.java │ │ │ ├── TupleCollectionFactory.java │ │ │ └── TupleMapFactory.java │ │ ├── io │ │ │ ├── IndexTuple.java │ │ │ ├── KeyIndexTuple.java │ │ │ ├── KeyTuple.java │ │ │ ├── TupleInputStream.java │ │ │ ├── TupleOutputStream.java │ │ │ ├── TuplePair.java │ │ │ ├── ValueIndexTuple.java │ │ │ └── ValueTuple.java │ │ ├── type │ │ │ ├── CoercibleType.java │ │ │ ├── CoercionFrom.java │ │ │ ├── DateType.java │ │ │ ├── InstantType.java │ │ │ ├── SerializableType.java │ │ │ └── ToCanonical.java │ │ └── util │ │ │ ├── CompositeTupleList.java │ │ │ ├── NarrowTupleList.java │ │ │ ├── ObjectArrayList.java │ │ │ ├── OverrideTupleList.java │ │ │ ├── Resettable.java │ │ │ ├── Resettable1.java │ │ │ ├── Resettable2.java │ │ │ ├── TupleBuilder.java │ │ │ ├── TupleHasher.java │ │ │ └── TupleViews.java │ │ └── util │ │ ├── CloseableIterator.java │ │ ├── DOTProcessGraphWriter.java │ │ ├── EnumMultiMap.java │ │ ├── ForeverValueIterator.java │ │ ├── LazyIterable.java │ │ ├── LogUtil.java │ │ ├── MultiMap.java │ │ ├── Murmur3.java │ │ ├── NullNotEquivalentComparator.java │ │ ├── NullSafeReverseComparator.java │ │ ├── Pair.java │ │ ├── ProcessLogger.java │ │ ├── SetMultiMap.java │ │ ├── ShutdownUtil.java │ │ ├── SingleCloseableInputIterator.java │ │ ├── SingleValueCloseableIterator.java │ │ ├── SingleValueIterator.java │ │ ├── SortedListMultiMap.java │ │ ├── TraceUtil.java │ │ ├── Traceable.java │ │ ├── Trie.java │ │ ├── Util.java │ │ ├── Version.java │ │ ├── cache │ │ ├── BaseCacheFactory.java │ │ ├── CacheEvictionCallback.java │ │ ├── CascadingCache.java │ │ ├── DirectMappedCache.java │ │ ├── DirectMappedCacheFactory.java │ │ ├── LRUHashMapCache.java │ │ ├── LRUHashMapCacheFactory.java │ │ ├── OrderedHashMapCache.java │ │ └── OrderedHashMapCacheFactory.java │ │ └── jgrapht │ │ ├── ComponentAttributeProvider.java │ │ ├── DOTExporter.java │ │ ├── EdgeNameProvider.java │ │ ├── IntegerNameProvider.java │ │ ├── LICENSE.txt │ │ ├── StringEdgeNameProvider.java │ │ ├── StringNameProvider.java │ │ └── VertexNameProvider.java │ └── test │ ├── java │ └── cascading │ │ ├── CascadingTestCase.java │ │ ├── CascadingTesting.java │ │ ├── InnerJoinTestBuffer.java │ │ ├── TestAggregator.java │ │ ├── TestBuffer.java │ │ ├── TestConstants.java │ │ ├── TestFailAggregator.java │ │ ├── TestFunction.java │ │ ├── TestIdentityBuffer.java │ │ ├── TraceTest.java │ │ ├── UtilTest.java │ │ ├── assembly │ │ ├── CrossTab.java │ │ ├── EuclideanDistance.java │ │ ├── PearsonDistance.java │ │ └── SortElements.java │ │ ├── cascade │ │ ├── CascadeListenersTest.java │ │ └── LockingCascadeListener.java │ │ ├── flow │ │ ├── FailingFlowListener.java │ │ ├── FlowListenersTest.java │ │ ├── FlowStepListenersTest.java │ │ ├── LockingFlowListener.java │ │ ├── iso │ │ │ ├── FindSubGraphTest.java │ │ │ ├── GraphFinderTest.java │ │ │ ├── IsomorphismTest.java │ │ │ ├── NonFunction.java │ │ │ ├── NonTap.java │ │ │ ├── expression │ │ │ │ ├── TestBoundarySelJoinCoGroupExpressionGraph.java │ │ │ │ ├── TestCheckpointExpression.java │ │ │ │ ├── TestConsecutiveTapsExpressionGraph.java │ │ │ │ ├── TestGroupGroupExpression.java │ │ │ │ ├── TestHashJoinBlockingHashJoinExpression.java │ │ │ │ ├── TestHashJoinSameSourceExpression.java │ │ │ │ ├── TestMalformedJoinExpressionGraph.java │ │ │ │ ├── TestNoGroupTapExpressionGraph.java │ │ │ │ └── TestNoTapExpressionGraph.java │ │ │ └── graph │ │ │ │ ├── CoGroupAroundCoGroupGraph.java │ │ │ │ ├── HashJoinAroundHashJoinLeftMostGraph.java │ │ │ │ ├── HashJoinMergeIntoHashJoinStreamedStreamedMergeGraph.java │ │ │ │ ├── HashJoinSameSourceGraph.java │ │ │ │ ├── HashJoinsIntoMerge.java │ │ │ │ ├── JoinAroundJoinRightMostGraph.java │ │ │ │ ├── JoinAroundJoinRightMostGraphSwapped.java │ │ │ │ ├── LoneGroupAssertionGraph.java │ │ │ │ ├── MulitStepFlowGraph.java │ │ │ │ ├── SelfCoGroupGraph.java │ │ │ │ └── StandardElementGraph.java │ │ └── stream │ │ │ ├── CountingCollectStage.java │ │ │ ├── CountingItemStage.java │ │ │ ├── StreamTest.java │ │ │ ├── TestGate.java │ │ │ ├── TestSinkStage.java │ │ │ └── TestSourceStage.java │ │ ├── management │ │ └── annotation │ │ │ └── URISanitizerTest.java │ │ ├── operation │ │ ├── aggregator │ │ │ └── AggregatorsTest.java │ │ ├── assertion │ │ │ ├── GroupAssertionsTest.java │ │ │ └── ValueAssertionsTest.java │ │ ├── filter │ │ │ ├── FilterTest.java │ │ │ ├── LimitFilterTest.java │ │ │ └── SampleFilterTest.java │ │ ├── function │ │ │ └── FunctionsTest.java │ │ ├── hash │ │ │ └── HashesTest.java │ │ └── regex │ │ │ └── RegexesTest.java │ │ ├── pipe │ │ └── PipeParamTest.java │ │ ├── property │ │ └── AppPropsTest.java │ │ ├── tap │ │ └── partition │ │ │ └── PartitionTest.java │ │ ├── tuple │ │ ├── DateTypeTest.java │ │ ├── FieldsComparatorTest.java │ │ ├── FieldsTest.java │ │ ├── InstantTypeTest.java │ │ ├── TupleEntrySchemeIteratorTest.java │ │ ├── TupleEntryTest.java │ │ ├── TupleFieldsTest.java │ │ ├── TupleListCollector.java │ │ ├── TupleTest.java │ │ └── TupleViewTest.java │ │ └── util │ │ ├── DirectMappedCacheTest.java │ │ └── TrieTest.java │ └── resources │ └── log4j.properties ├── cascading-expression ├── build.gradle └── src │ ├── main │ └── java │ │ └── cascading │ │ └── operation │ │ ├── assertion │ │ └── AssertExpression.java │ │ └── expression │ │ ├── ExpressionFilter.java │ │ ├── ExpressionFunction.java │ │ ├── ExpressionOperation.java │ │ ├── ScriptFilter.java │ │ ├── ScriptFunction.java │ │ ├── ScriptOperation.java │ │ └── ScriptTupleFunction.java │ └── test │ └── java │ └── cascading │ └── operation │ └── expression │ ├── ExpressionTest.java │ ├── Extended.java │ ├── FilterTest.java │ ├── ScriptTest.java │ ├── ScriptTupleTest.java │ └── ValueAssertionsTest.java ├── cascading-hadoop3-common ├── build.gradle └── src │ ├── main │ └── java │ │ └── cascading │ │ ├── flow │ │ └── hadoop │ │ │ ├── ConfigurationSetter.java │ │ │ ├── FailOnMissingSuccessFlowListener.java │ │ │ ├── HadoopCoGroupClosure.java │ │ │ ├── HadoopGroupByClosure.java │ │ │ ├── planner │ │ │ └── rule │ │ │ │ ├── assertion │ │ │ │ └── DualStreamedAccumulatedMergePipelineAssert.java │ │ │ │ ├── expression │ │ │ │ ├── AccumulatedTapOnHashJoinExpression.java │ │ │ │ ├── BalanceCheckpointWithTapExpression.java │ │ │ │ ├── BalanceGroupBlockingHashJoinExpression.java │ │ │ │ ├── BalanceGroupGroupExpression.java │ │ │ │ ├── BalanceGroupMergeGroupExpression.java │ │ │ │ ├── BalanceGroupNonBlockingHashJoinExpression.java │ │ │ │ ├── BalanceGroupSplitExpression.java │ │ │ │ ├── BalanceGroupSplitJoinExpression.java │ │ │ │ ├── BalanceGroupSplitMergeExpression.java │ │ │ │ ├── BalanceGroupSplitMergeGroupExpression.java │ │ │ │ ├── BalanceGroupSplitTriangleExpression.java │ │ │ │ ├── BalanceHashJoinBlockingHashJoinExpression.java │ │ │ │ ├── BalanceHashJoinSameSourceExpression.java │ │ │ │ ├── BalanceHashJoinToHashJoinExpression.java │ │ │ │ ├── BalanceNonSafePipeSplitExpression.java │ │ │ │ ├── BalanceNonSafeSplitExpression.java │ │ │ │ ├── BalanceSameSourceStreamedAccumulatedExpression.java │ │ │ │ ├── ConsecutiveTapsPartitionExpression.java │ │ │ │ ├── DualStreamedAccumulatedExpression.java │ │ │ │ ├── GroupTapPartitionExpression.java │ │ │ │ ├── StreamedAccumulatedTapsExpressionGraph.java │ │ │ │ ├── StreamedAccumulatedTapsHashJoinExpressionGraph.java │ │ │ │ ├── StreamedAccumulatedTapsHashJoinPipelinePartitionExpression.java │ │ │ │ ├── StreamedAccumulatedTapsPipelinePartitionExpression.java │ │ │ │ ├── StreamedOnlySourcesPipelinePartitionExpression.java │ │ │ │ ├── StreamedSelfJoinSourcesPipelinePartitionExpression.java │ │ │ │ └── TapGroupTapPartitionExpression.java │ │ │ │ ├── expressiongraph │ │ │ │ ├── MalformedJoinExpressionGraph.java │ │ │ │ ├── NoGroupTapExpressionGraph.java │ │ │ │ ├── StreamedOnlySourcesExpressionGraph.java │ │ │ │ └── StreamedSelfJoinSourcesExpressionGraph.java │ │ │ │ ├── partitioner │ │ │ │ ├── ConsecutiveTapsNodePartitioner.java │ │ │ │ ├── ConsecutiveTapsStepPartitioner.java │ │ │ │ ├── GroupTapNodePartitioner.java │ │ │ │ ├── MultiTapGroupNodePartitioner.java │ │ │ │ ├── StreamedAccumulatedTapsHashJoinPipelinePartitioner.java │ │ │ │ ├── StreamedAccumulatedTapsPipelinePartitioner.java │ │ │ │ ├── StreamedOnlySourcesPipelinePartitioner.java │ │ │ │ ├── StreamedSelfJoinSourcesPipelinePartitioner.java │ │ │ │ └── TapGroupTapStepPartitioner.java │ │ │ │ └── transformer │ │ │ │ ├── RemoveMalformedHashJoinPipelineTransformer.java │ │ │ │ ├── RemoveStreamedBranchTransformer.java │ │ │ │ ├── ReplaceAccumulateTapWithDistCacheTransformer.java │ │ │ │ ├── TapBalanceCheckpointTransformer.java │ │ │ │ ├── TapBalanceGroupBlockingHashJoinTransformer.java │ │ │ │ ├── TapBalanceGroupGroupTransformer.java │ │ │ │ ├── TapBalanceGroupMergeGroupTransformer.java │ │ │ │ ├── TapBalanceGroupNonBlockingHashJoinTransformer.java │ │ │ │ ├── TapBalanceGroupSplitJoinTransformer.java │ │ │ │ ├── TapBalanceGroupSplitMergeGroupTransformer.java │ │ │ │ ├── TapBalanceGroupSplitMergeTransformer.java │ │ │ │ ├── TapBalanceGroupSplitTransformer.java │ │ │ │ ├── TapBalanceGroupSplitTriangleTransformer.java │ │ │ │ ├── TapBalanceHashJoinBlockingHashJoinTransformer.java │ │ │ │ ├── TapBalanceHashJoinSameSourceTransformer.java │ │ │ │ ├── TapBalanceNonSafePipeSplitTransformer.java │ │ │ │ ├── TapBalanceNonSafeSplitTransformer.java │ │ │ │ └── TapBalanceSameSourceStreamedAccumulatedTransformer.java │ │ │ ├── stream │ │ │ ├── HadoopGroupGate.java │ │ │ └── HadoopMemoryJoinGate.java │ │ │ └── util │ │ │ ├── FalseCollection.java │ │ │ ├── LazyCollection.java │ │ │ ├── LazySpillableTupleCollection.java │ │ │ ├── ResettableCollection.java │ │ │ └── TimedIterator.java │ │ ├── stats │ │ └── hadoop │ │ │ └── HadoopCounterCache.java │ │ └── tuple │ │ └── hadoop │ │ └── util │ │ ├── BaseTupleComparator.java │ │ ├── CoGroupingComparator.java │ │ ├── DelegatingTupleElementComparator.java │ │ ├── DeserializerComparator.java │ │ ├── GroupingComparator.java │ │ ├── GroupingSortingComparator.java │ │ ├── HasherPartitioner.java │ │ ├── IndexTupleCoGroupingComparator.java │ │ ├── ReverseGroupingSortingComparator.java │ │ ├── TupleElementComparator.java │ │ ├── TupleElementStreamComparator.java │ │ ├── TypedTupleElementComparator.java │ │ └── TypedTupleElementStreamComparator.java │ └── test │ ├── java │ └── cascading │ │ ├── flow │ │ └── hadoop │ │ │ ├── FlowPlatformTest.java │ │ │ └── UtilHadoopTest.java │ │ ├── platform │ │ └── hadoop │ │ │ ├── BaseHadoopPlatform.java │ │ │ ├── HadoopConfigDefScheme.java │ │ │ ├── HadoopFailScheme.java │ │ │ ├── TestLongComparator.java │ │ │ └── TestStringComparator.java │ │ ├── scheme │ │ └── hadoop │ │ │ └── WritableSequenceFilePlatformTest.java │ │ ├── tap │ │ └── hadoop │ │ │ ├── DistCacheTapPlatformTest.java │ │ │ └── HadoopTapPlatformTest.java │ │ └── tuple │ │ └── hadoop │ │ ├── HadoopSerializationPlatformTest.java │ │ ├── NoTokenTestBytesSerialization.java │ │ ├── NoTokenTestSerialization.java │ │ ├── SerializedPipesPlatformTest.java │ │ ├── TestSerialization.java │ │ ├── TestText.java │ │ ├── TestTextComparator.java │ │ ├── TestWritableComparable.java │ │ └── TupleTest.java │ └── resources │ └── log4j.properties ├── cascading-hadoop3-io ├── build.gradle └── src │ └── main │ └── java │ └── cascading │ ├── flow │ └── hadoop │ │ ├── MapRed.java │ │ └── util │ │ ├── HadoopUtil.java │ │ ├── JavaObjectSerializer.java │ │ └── ObjectSerializer.java │ ├── scheme │ └── hadoop │ │ ├── SequenceFile.java │ │ ├── TextDelimited.java │ │ ├── TextLine.java │ │ └── WritableSequenceFile.java │ ├── tap │ └── hadoop │ │ ├── BaseDistCacheTap.java │ │ ├── Dfs.java │ │ ├── GlobHfs.java │ │ ├── Hfs.java │ │ ├── HfsProps.java │ │ ├── Lfs.java │ │ ├── PartitionTap.java │ │ ├── io │ │ ├── CombineFileRecordReaderWrapper.java │ │ ├── CombineInputPartitionTupleEntryIterator.java │ │ ├── FSDigestInputStream.java │ │ ├── HadoopTupleEntrySchemeCollector.java │ │ ├── HadoopTupleEntrySchemeIterator.java │ │ ├── HttpFileSystem.java │ │ ├── MultiInputFormat.java │ │ ├── MultiInputSplit.java │ │ ├── MultiRecordReaderIterator.java │ │ ├── RecordReaderIterator.java │ │ ├── StreamedFileSystem.java │ │ └── TapOutputCollector.java │ │ └── util │ │ ├── Hadoop18TapUtil.java │ │ ├── MeasuredOutputCollector.java │ │ ├── MeasuredRecordReader.java │ │ └── TempHfs.java │ └── tuple │ └── hadoop │ ├── BigDecimalSerialization.java │ ├── BytesSerialization.java │ ├── SerializationToken.java │ ├── TupleSerialization.java │ ├── TupleSerializationProps.java │ ├── collect │ ├── HadoopSpillableTupleList.java │ ├── HadoopSpillableTupleMap.java │ ├── HadoopTupleCollectionFactory.java │ └── HadoopTupleMapFactory.java │ ├── io │ ├── BaseDeserializer.java │ ├── BaseSerializer.java │ ├── BufferedInputStream.java │ ├── HadoopTupleInputStream.java │ ├── HadoopTupleOutputStream.java │ ├── IndexTupleDeserializer.java │ ├── IndexTupleSerializer.java │ ├── KeyIndexTupleDeserializer.java │ ├── KeyIndexTupleSerializer.java │ ├── KeyTupleDeserializer.java │ ├── KeyTupleSerializer.java │ ├── TupleDeserializer.java │ ├── TuplePairDeserializer.java │ ├── TuplePairSerializer.java │ ├── TupleSerializer.java │ ├── ValueIndexTupleDeserializer.java │ ├── ValueIndexTupleSerializer.java │ ├── ValueTupleDeserializer.java │ └── ValueTupleSerializer.java │ └── util │ └── BytesComparator.java ├── cascading-hadoop3-mr1 ├── build.gradle └── src │ ├── main │ └── java │ │ └── cascading │ │ ├── flow │ │ ├── hadoop │ │ │ ├── BaseMapReduceFlow.java │ │ │ ├── FlowMapper.java │ │ │ ├── FlowReducer.java │ │ │ ├── HadoopFlow.java │ │ │ ├── HadoopFlowProcess.java │ │ │ ├── HadoopFlowStep.java │ │ │ ├── MapReduceFlow.java │ │ │ ├── MapReduceFlowStep.java │ │ │ ├── MultiMapReduceFlow.java │ │ │ ├── planner │ │ │ │ ├── HadoopFlowStepJob.java │ │ │ │ ├── HadoopPlanner.java │ │ │ │ ├── MapReduceHadoopRuleRegistry.java │ │ │ │ └── rule │ │ │ │ │ ├── expression │ │ │ │ │ └── AdjacentTempToTapExpression.java │ │ │ │ │ ├── scopeexpression │ │ │ │ │ └── EquivalentTapsScopeExpression.java │ │ │ │ │ └── transformer │ │ │ │ │ └── CombineAdjacentTapTransformer.java │ │ │ ├── stream │ │ │ │ ├── element │ │ │ │ │ ├── HadoopCoGroupGate.java │ │ │ │ │ ├── HadoopGroupByGate.java │ │ │ │ │ └── HadoopSinkStage.java │ │ │ │ └── graph │ │ │ │ │ ├── HadoopMapStreamGraph.java │ │ │ │ │ └── HadoopReduceStreamGraph.java │ │ │ └── util │ │ │ │ └── HadoopMRUtil.java │ │ └── hadoop3 │ │ │ ├── Hadoop3MRFlowConnector.java │ │ │ └── Hadoop3MRPlanner.java │ │ ├── stats │ │ └── hadoop │ │ │ ├── HadoopNodeCounterCache.java │ │ │ ├── HadoopNodeStats.java │ │ │ ├── HadoopSliceStats.java │ │ │ ├── HadoopStepCounterCache.java │ │ │ └── HadoopStepStats.java │ │ ├── tap │ │ └── hadoop │ │ │ └── DistCacheTap.java │ │ └── tuple │ │ └── hadoop │ │ └── util │ │ ├── CoGroupingPartitioner.java │ │ ├── GroupingPartitioner.java │ │ ├── GroupingSortingPartitioner.java │ │ ├── ReverseTupleComparator.java │ │ └── TupleComparator.java │ └── test │ ├── java │ └── cascading │ │ ├── flow │ │ └── hadoop │ │ │ ├── BuildJobsHadoopPlatformTest.java │ │ │ ├── MapReduceFlowPlatformTest.java │ │ │ └── MultiMapReduceFlowPlatformTest.java │ │ ├── platform │ │ └── hadoop3 │ │ │ └── Hadoop3MRPlatform.java │ │ ├── stats │ │ └── hadoop │ │ │ ├── CascadingStatsLocalHadoopErrorPlatformTest.java │ │ │ └── HadoopStatsPlatformTest.java │ │ ├── tap │ │ └── hadoop │ │ │ ├── HadoopMR1TapPlatformTest.java │ │ │ └── PartitionTapTest.java │ │ └── tuple │ │ └── hadoop │ │ └── SpillableTupleHadoopTest.java │ └── resources │ ├── cascading │ └── platform │ │ └── platform.properties │ └── log4j.properties ├── cascading-hadoop3-parquet-thrift ├── build.gradle └── src │ ├── main │ └── java │ │ └── cascading │ │ └── tap │ │ └── parquet │ │ ├── ParquetTBaseScheme.java │ │ └── ParquetValueScheme.java │ └── test │ └── java │ └── cascading │ └── tap │ └── parquet │ └── ParquetTBaseSchemeTest.java ├── cascading-hadoop3-parquet ├── README.md ├── build.gradle ├── merge-parquet.txt ├── parquet_cascading.md └── src │ ├── main │ └── java │ │ └── cascading │ │ └── tap │ │ └── parquet │ │ ├── ParquetTupleScheme.java │ │ ├── SchemaIntersection.java │ │ ├── TupleReadSupport.java │ │ ├── TupleWriteSupport.java │ │ ├── TypedParquetScheme.java │ │ ├── TypedTupleReadSupport.java │ │ ├── TypedTupleWriteSupport.java │ │ └── convert │ │ ├── TupleConverter.java │ │ └── TupleRecordMaterializer.java │ └── test │ ├── java │ └── cascading │ │ └── tap │ │ └── parquet │ │ ├── ParquetSchemeTestCase.java │ │ └── ParquetTupleSchemeTest.java │ ├── resources │ └── names.txt │ └── thrift │ └── test.thrift ├── cascading-hadoop3-tez-stats ├── build.gradle └── src │ └── main │ └── java │ └── cascading │ └── stats │ └── tez │ ├── TezCounterCache.java │ ├── TezNodeStats.java │ ├── TezSliceStats.java │ ├── TezStepStats.java │ └── util │ ├── TaskStatus.java │ ├── TezStatsUtil.java │ ├── TezTimelineClient.java │ └── TimelineClient.java ├── cascading-hadoop3-tez ├── README.md ├── build.gradle └── src │ ├── main │ └── java │ │ └── cascading │ │ ├── flow │ │ └── tez │ │ │ ├── FlowProcessor.java │ │ │ ├── Hadoop3TezFlow.java │ │ │ ├── Hadoop3TezFlowConnector.java │ │ │ ├── Hadoop3TezFlowProcess.java │ │ │ ├── Hadoop3TezFlowStep.java │ │ │ ├── TezCoGroupClosure.java │ │ │ ├── TezGroupByClosure.java │ │ │ ├── planner │ │ │ ├── Hadoop3TezFlowStepJob.java │ │ │ ├── Hadoop3TezPlanner.java │ │ │ ├── HashJoinHadoop3TezRuleRegistry.java │ │ │ ├── NoHashJoinHadoop3TezRuleRegistry.java │ │ │ └── rule │ │ │ │ ├── annotator │ │ │ │ └── AccumulatedPostNodeAnnotator.java │ │ │ │ ├── assertion │ │ │ │ ├── DualStreamedAccumulatedMergeNodeAssert.java │ │ │ │ └── NoHashJoinAssert.java │ │ │ │ ├── expression │ │ │ │ ├── BalanceCheckpointWithBoundaryExpression.java │ │ │ │ ├── BalanceGroupSplitHashJoinExpression.java │ │ │ │ ├── BalanceGroupSplitNotTapExpression.java │ │ │ │ ├── BalanceGroupSplitSpliceExpression.java │ │ │ │ ├── BalanceSplitSplitToStreamedHashJoinExpression.java │ │ │ │ └── BalanceSplitToStreamedHashJoinExpression.java │ │ │ │ ├── expressiongraph │ │ │ │ ├── AccumulatedSourceExpressionGraph.java │ │ │ │ ├── BalanceJoinSplitExpression.java │ │ │ │ ├── BottomUpConsecutiveBoundariesExpressionGraph.java │ │ │ │ ├── BottomUpConsecutiveBoundariesTriangleExpressionGraph.java │ │ │ │ ├── BottomUpNoSplitConsecutiveBoundariesExpressionGraph.java │ │ │ │ ├── BoundarySelJoinCoGroupExpressionGraph.java │ │ │ │ ├── ConsecutiveGroupOrMergeExpressionGraph.java │ │ │ │ ├── GroupMergeToTapBoundaryExpressionGraph.java │ │ │ │ ├── NoGroupMergeBoundaryTapExpressionGraph.java │ │ │ │ ├── NoSpliceTapExpressionGraph.java │ │ │ │ ├── StreamedAccumulatedBoundariesExpressionGraph.java │ │ │ │ ├── StreamedOnlySourcesExpressionGraph.java │ │ │ │ ├── StreamedSelfJoinSourcesExpressionGraph.java │ │ │ │ ├── TopDownConsecutiveBoundariesExpressionGraph.java │ │ │ │ ├── TopDownSplitBoundariesExpressionGraph.java │ │ │ │ └── TopDownSplitJoinBoundariesExpressionGraph.java │ │ │ │ ├── partitioner │ │ │ │ ├── BottomUpBoundariesNodePartitioner.java │ │ │ │ ├── BottomUpJoinedBoundariesNodePartitioner.java │ │ │ │ ├── BottomUpJoinedBoundariesTriangleNodePartitioner.java │ │ │ │ ├── ConsecutiveGroupOrMergesNodePartitioner.java │ │ │ │ ├── SplitJoinBoundariesNodeRePartitioner.java │ │ │ │ ├── StreamedAccumulatedBoundariesNodeRePartitioner.java │ │ │ │ ├── StreamedOnlySourcesNodeRePartitioner.java │ │ │ │ ├── TopDownBoundariesNodePartitioner.java │ │ │ │ └── TopDownSplitBoundariesNodePartitioner.java │ │ │ │ └── transformer │ │ │ │ ├── BoundaryBalanceCheckpointTransformer.java │ │ │ │ ├── BoundaryBalanceGroupBlockingHashJoinTransformer.java │ │ │ │ ├── BoundaryBalanceGroupSplitHashJoinTransformer.java │ │ │ │ ├── BoundaryBalanceGroupSplitSpliceTransformer.java │ │ │ │ ├── BoundaryBalanceGroupSplitTransformer.java │ │ │ │ ├── BoundaryBalanceHashJoinSameSourceTransformer.java │ │ │ │ ├── BoundaryBalanceHashJoinToHashJoinTransformer.java │ │ │ │ ├── BoundaryBalanceJoinSplitTransformer.java │ │ │ │ ├── BoundaryBalanceSplitSplitToStreamedHashJoinTransformer.java │ │ │ │ ├── BoundaryBalanceSplitToStreamedHashJoinTransformer.java │ │ │ │ ├── BoundaryElementFactory.java │ │ │ │ └── RemoveMalformedHashJoinNodeTransformer.java │ │ │ ├── stream │ │ │ ├── element │ │ │ │ ├── OldOutputCollector.java │ │ │ │ ├── TezBoundaryStage.java │ │ │ │ ├── TezCoGroupGate.java │ │ │ │ ├── TezGroupByGate.java │ │ │ │ ├── TezGroupGate.java │ │ │ │ ├── TezMergeGate.java │ │ │ │ ├── TezSinkStage.java │ │ │ │ └── TezSourceStage.java │ │ │ └── graph │ │ │ │ └── Hadoop3TezStreamGraph.java │ │ │ └── util │ │ │ ├── SecondarySortKeyValuesReader.java │ │ │ └── TezUtil.java │ │ ├── tap │ │ └── hadoop │ │ │ └── DistCacheTap.java │ │ └── tuple │ │ ├── hadoop │ │ └── util │ │ │ ├── ReverseTupleComparator.java │ │ │ └── TupleComparator.java │ │ └── tez │ │ └── util │ │ ├── CoGroupingPartitioner.java │ │ ├── GroupingSortingPartitioner.java │ │ └── TuplePartitioner.java │ └── test │ ├── java │ └── cascading │ │ ├── platform │ │ └── tez │ │ │ └── Hadoop3TezPlatform.java │ │ └── stats │ │ └── tez │ │ └── TezStatsPlatformTest.java │ └── resources │ ├── cascading │ └── platform │ │ └── platform.properties │ └── log4j.properties ├── cascading-local-hadoop3-io ├── build.gradle └── src │ ├── main │ └── java │ │ └── cascading │ │ ├── flow │ │ └── local │ │ │ └── hadoop │ │ │ └── LocalHadoopFlowProcess.java │ │ └── tap │ │ └── local │ │ └── hadoop │ │ └── LocalHfsAdaptor.java │ └── test │ └── java │ └── cascading │ └── tap │ └── local │ └── hadoop │ └── HadoopAdapterTapPlatformTest.java ├── cascading-local-kafka ├── build.gradle └── src │ ├── main │ └── java │ │ └── cascading │ │ └── local │ │ └── tap │ │ └── kafka │ │ ├── KafkaCommittingTap.java │ │ ├── KafkaConsumerRecordIterator.java │ │ ├── KafkaScheme.java │ │ ├── KafkaTap.java │ │ ├── TextKafkaScheme.java │ │ ├── commit │ │ ├── CommitListener.java │ │ ├── CommittingConsumer.java │ │ ├── CommittingRebalanceListener.java │ │ └── OffsetRecorderIterator.java │ │ └── decorator │ │ ├── ForwardingConsumer.java │ │ ├── ForwardingConsumerRebalanceListener.java │ │ └── ForwardingConsumerRecords.java │ └── test │ └── java │ └── cascading │ └── local │ └── tap │ └── kafka │ └── KafkaTapIntegrationTest.java ├── cascading-local-neo4j ├── build.gradle └── src │ ├── main │ └── java │ │ └── cascading │ │ └── local │ │ └── tap │ │ └── neo4j │ │ ├── GraphSpec.java │ │ ├── JSONGraphSpec.java │ │ ├── JSONUtil.java │ │ ├── Neo4jJSONScheme.java │ │ ├── Neo4jJSONStatement.java │ │ ├── Neo4jScheme.java │ │ ├── Neo4jStatement.java │ │ └── Neo4jTap.java │ └── test │ └── java │ └── cascading │ └── local │ └── tap │ └── neo4j │ ├── GraphSpecTest.java │ ├── Neo4jIntegrationTestCase.java │ └── Neo4jTapIntegrationTest.java ├── cascading-local-s3 ├── build.gradle └── src │ ├── main │ └── java │ │ └── cascading │ │ └── local │ │ └── tap │ │ └── aws │ │ └── s3 │ │ ├── S3Checkpointer.java │ │ ├── S3FileCheckpointer.java │ │ ├── S3Iterable.java │ │ ├── S3Tap.java │ │ └── S3TapProps.java │ └── test │ └── java │ └── cascading │ └── local │ ├── tap │ └── aws │ │ └── s3 │ │ └── S3TapTest.java │ └── util │ └── S3Rule.java ├── cascading-local-splunk ├── README.md ├── build.gradle └── src │ ├── main │ └── java │ │ └── cascading │ │ └── local │ │ └── tap │ │ └── splunk │ │ ├── SplunkCSV.java │ │ ├── SplunkIndexTap.java │ │ ├── SplunkRawDelimited.java │ │ ├── SplunkRawLine.java │ │ ├── SplunkScheme.java │ │ ├── SplunkSearchTap.java │ │ ├── SplunkTap.java │ │ └── SplunkUtil.java │ └── test │ └── java │ ├── cascading │ └── local │ │ └── tap │ │ └── splunk │ │ ├── Main.java │ │ └── SplunkTapIntegrationTest.java │ └── com │ └── splunk │ ├── ResourceRoot.java │ └── SDKTestCase.java ├── cascading-local ├── build.gradle └── src │ ├── main │ └── java │ │ └── cascading │ │ ├── flow │ │ └── local │ │ │ ├── LocalFlow.java │ │ │ ├── LocalFlowConnector.java │ │ │ ├── LocalFlowProcess.java │ │ │ ├── LocalFlowStep.java │ │ │ ├── planner │ │ │ ├── LocalFlowStepJob.java │ │ │ ├── LocalPlanner.java │ │ │ ├── LocalRuleRegistry.java │ │ │ └── LocalStepRunner.java │ │ │ └── stream │ │ │ ├── duct │ │ │ └── ParallelFork.java │ │ │ ├── element │ │ │ ├── LocalGroupByGate.java │ │ │ └── SyncMergeStage.java │ │ │ └── graph │ │ │ └── LocalStepStreamGraph.java │ │ ├── scheme │ │ └── local │ │ │ ├── CompressorScheme.java │ │ │ ├── Compressors.java │ │ │ ├── TextDelimited.java │ │ │ └── TextLine.java │ │ ├── stats │ │ └── local │ │ │ └── LocalStepStats.java │ │ └── tap │ │ └── local │ │ ├── DirTap.java │ │ ├── FileTap.java │ │ ├── PartitionTap.java │ │ ├── StdErrTap.java │ │ ├── StdInTap.java │ │ ├── StdOutTap.java │ │ └── io │ │ └── TapFileOutputStream.java │ └── test │ ├── java │ └── cascading │ │ ├── flow │ │ └── local │ │ │ └── FlowPlatformTest.java │ │ ├── operation │ │ └── local │ │ │ └── StopFilterPlatformTest.java │ │ ├── platform │ │ └── local │ │ │ ├── LocalConfigDefScheme.java │ │ │ ├── LocalFailScheme.java │ │ │ ├── LocalPlatform.java │ │ │ ├── TestLongComparator.java │ │ │ └── TestStringComparator.java │ │ └── tap │ │ └── local │ │ └── LocalTapPlatformTest.java │ └── resources │ └── cascading │ └── platform │ └── platform.properties ├── cascading-nested-json ├── build.gradle └── src │ ├── jmh │ └── java │ │ └── cascading │ │ └── nested │ │ └── json │ │ ├── CanonicalBench.java │ │ └── CoerceBench.java │ ├── main │ └── java │ │ └── cascading │ │ └── nested │ │ └── json │ │ ├── JSONBuildAsAggregator.java │ │ ├── JSONBuildAsFunction.java │ │ ├── JSONBuildIntoFunction.java │ │ ├── JSONCoercibleType.java │ │ ├── JSONCopyAsFunction.java │ │ ├── JSONCopyIntoFunction.java │ │ ├── JSONCreateFunction.java │ │ ├── JSONGetAllAggregateFunction.java │ │ ├── JSONGetAllFunction.java │ │ ├── JSONGetFunction.java │ │ ├── JSONRegexFilter.java │ │ ├── JSONSetFunction.java │ │ ├── filter │ │ ├── JSONBooleanPointerFilter.java │ │ └── JSONStringPointerFilter.java │ │ ├── hadoop3 │ │ ├── JSONHadoopSerialization.java │ │ └── JSONTextLine.java │ │ ├── local │ │ └── JSONTextLine.java │ │ └── transform │ │ ├── JSONPrimitiveTransforms.java │ │ └── JSONSetTextTransform.java │ └── test │ └── java │ └── cascading │ └── nested │ └── json │ ├── JSONBuildAsAggregatorTest.java │ ├── JSONBuildAsFunctionTest.java │ ├── JSONBuildIntoFunctionTest.java │ ├── JSONCopyAsFunctionTest.java │ ├── JSONCopyIntoFunctionTest.java │ ├── JSONData.java │ ├── JSONFilterTest.java │ ├── JSONGetAllAggregateFunctionTest.java │ ├── JSONGetAllFunctionTest.java │ ├── JSONGetFunctionTest.java │ ├── JSONSetCreateFunctionTest.java │ └── JSONTypeTest.java ├── cascading-nested ├── build.gradle └── src │ └── main │ └── java │ └── cascading │ └── nested │ └── core │ ├── BuildSpec.java │ ├── CopySpec.java │ ├── NestedAggregate.java │ ├── NestedBaseBuildAggregator.java │ ├── NestedBaseBuildFunction.java │ ├── NestedBaseCopyFunction.java │ ├── NestedBaseFunction.java │ ├── NestedBaseOperation.java │ ├── NestedCoercibleType.java │ ├── NestedCreateFunction.java │ ├── NestedGetAllAggregateFunction.java │ ├── NestedGetAllFunction.java │ ├── NestedGetFunction.java │ ├── NestedRegexFilter.java │ ├── NestedSetFunction.java │ ├── NestedSpecBaseOperation.java │ ├── Transform.java │ └── aggregate │ ├── AverageDoubleNestedAggregate.java │ ├── BaseNumberNestedAggregate.java │ ├── SimpleNestedAggregate.java │ ├── SumDoubleNestedAggregate.java │ └── SumLongNestedAggregate.java ├── cascading-platform ├── build.gradle └── src │ └── test │ ├── java │ ├── cascading │ │ ├── BasicPipesPlatformTest.java │ │ ├── BasicTrapPlatformTest.java │ │ ├── BufferPipesPlatformTest.java │ │ ├── CoGroupFieldedPipesPlatformTest.java │ │ ├── ComparePlatformsTest.java │ │ ├── DistanceUseCasePlatformTest.java │ │ ├── FieldedPipesPlatformTest.java │ │ ├── JoinFieldedPipesPlatformTest.java │ │ ├── MergePipesPlatformTest.java │ │ ├── PlatformTestCase.java │ │ ├── RegressionMiscPlatformTest.java │ │ ├── RegressionPipesPlatformTest.java │ │ ├── SortedValuesPlatformTest.java │ │ ├── TrapPlatformTest.java │ │ ├── TypedFieldedPipesPlatformTest.java │ │ ├── UnmodifiablePipesPlatformTest.java │ │ ├── cascade │ │ │ ├── CascadePlatformTest.java │ │ │ ├── CascadeStalePlatformTest.java │ │ │ ├── ParallelCascadePlatformTest.java │ │ │ └── RiffleCascadePlatformTest.java │ │ ├── detail │ │ │ ├── AssemblyFactory.java │ │ │ ├── EachAssemblyFactory.java │ │ │ ├── EachEachPipeAssemblyPlatformTest.java │ │ │ ├── EachPipeAssemblyPlatformTest.java │ │ │ ├── EveryAssemblyFactory.java │ │ │ ├── EveryEveryPipeAssemblyPlatformTest.java │ │ │ ├── EveryPipeAssemblyPlatformTest.java │ │ │ └── PipeAssemblyTestBase.java │ │ ├── flow │ │ │ ├── AssemblyPlannerPlatformTest.java │ │ │ ├── ClasspathPlatformTest.java │ │ │ ├── CountingFlowListener.java │ │ │ ├── FlowProcessPlatformTest.java │ │ │ ├── FlowStrategiesPlatformTest.java │ │ │ ├── ResolverExceptionsPlatformTest.java │ │ │ ├── SubAssemblyPlatformTest.java │ │ │ └── stream │ │ │ │ └── SparseTupleFieldsComparatorTest.java │ │ ├── function │ │ │ └── FunctionPlatformTest.java │ │ ├── nested │ │ │ └── json │ │ │ │ └── JSONNestedPlatformTest.java │ │ ├── operation │ │ │ ├── assertion │ │ │ │ ├── AppliedAssertionsPlatformTest.java │ │ │ │ └── BuildAssertionsPlatformTest.java │ │ │ └── debug │ │ │ │ └── BuildDebugPlatformTest.java │ │ ├── pipe │ │ │ ├── MergeGroupPlatformTest.java │ │ │ ├── assembly │ │ │ │ └── AssemblyHelpersPlatformTest.java │ │ │ └── checkpoint │ │ │ │ └── CheckpointPlatformTest.java │ │ ├── planner │ │ │ └── LogicalOptimizationsPlatformTest.java │ │ ├── platform │ │ │ ├── PlatformRunner.java │ │ │ ├── PlatformSuite.java │ │ │ └── TestPlatform.java │ │ ├── property │ │ │ └── ConfigDefPlatformTest.java │ │ ├── scheme │ │ │ └── TextDelimitedPlatformTest.java │ │ ├── stats │ │ │ └── CascadingStatsPlatformTest.java │ │ └── tap │ │ │ ├── TapCollectorPlatformTest.java │ │ │ ├── TapPlatformTest.java │ │ │ └── TapStreamPlatformTest.java │ └── data │ │ └── InputData.java │ └── resources │ ├── cascading │ └── detail │ │ ├── op.op.properties │ │ └── op.properties │ ├── data │ ├── apache-clean.10.txt │ ├── apache.10.txt │ ├── apache.200.txt │ ├── comments+lower.txt │ ├── critics.txt │ ├── data.json │ ├── delimited-extra-field.txt │ ├── delimited-header.txt │ ├── delimited-problematic.txt │ ├── delimited-spec-char.txt │ ├── delimited.txt │ ├── extra+lower+upper.txt │ ├── ips.20.txt │ ├── lhs+rhs-cross-nulls.txt │ ├── lhs+rhs-cross-rev.txt │ ├── lhs+rhs-cross-x2-var-len.txt │ ├── lhs+rhs-cross-x2.txt │ ├── lhs+rhs-cross.txt │ ├── lhs-sparse.txt │ ├── lhs.txt │ ├── lower+upper.txt │ ├── lower-offset.txt │ ├── lower.txt │ ├── nums.10.txt │ ├── nums.20.txt │ ├── rhs-sparse.txt │ ├── rhs.txt │ ├── test-classpath.jar │ ├── unexpectedEndOfFile.gz │ └── upper.txt │ └── log4j.properties ├── etc ├── properties.gradle ├── s3Upload.gradle ├── synchronizer.properties ├── testing.gradle ├── testingIntegration.gradle ├── testingPlatform.gradle └── version.gradle ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── settings.gradle └── version.properties /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [cwensel] 2 | -------------------------------------------------------------------------------- /.github/workflows/CI.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | # run on all branches for PRs opened 4 | on: 5 | pull_request: 6 | branches: 7 | - '**' 8 | 9 | jobs: 10 | run-all-tests: 11 | runs-on: ubuntu-latest 12 | 13 | steps: 14 | - name: Checkout Repo 15 | uses: actions/checkout@v2 16 | 17 | - uses: actions/setup-java@v2 18 | with: 19 | distribution: zulu 20 | # java 11 does not support expected jvm arguments 21 | java-version: 8 22 | 23 | - name: Setup Gradle 24 | uses: gradle/gradle-build-action@v2 25 | 26 | - name: Run Full Tests 27 | run: | 28 | ./gradlew clean check -i -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | junitvm*.properties 2 | build.properties 3 | gradle.properties 4 | .DS_Store 5 | lib 6 | build 7 | dist 8 | out 9 | javadoc 10 | *.tmproj 11 | .idea 12 | *.iml 13 | *.ipr 14 | *.iws 15 | .gradle 16 | target 17 | .classpath 18 | .project 19 | .metadata 20 | .settings/ 21 | bench 22 | *.jfr 23 | -------------------------------------------------------------------------------- /AUTHORS.txt: -------------------------------------------------------------------------------- 1 | 2 | Authors: 3 | 4 | The Cascading project Copyright is held by these authors unless 5 | otherwise specified in the header of any given file. 6 | 7 | For files created between 2007 and May 2016: 8 | 9 | Copyright (c) 2007-2016 Xplenty, Inc. All Rights Reserved. 10 | 11 | For files created after 2007 and modified on or after May 2016: 12 | 13 | Copyright (c) 2016-2022 Chris K Wensel . All Rights Reserved. 14 | Copyright (c) 2007-2016 Xplenty, Inc. All Rights Reserved. 15 | 16 | For files created between May 2016 and 2022: 17 | 18 | Copyright (c) 2016-2022 Chris K Wensel . All Rights Reserved. -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | 2 | License: 3 | 4 | Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 5 | 6 | Project and contact information: http://cascading.wensel.net/ 7 | 8 | This file is part of the Cascading project. 9 | 10 | Licensed under the Apache License, Version 2.0 (the "License"); 11 | you may not use this file except in compliance with the License. 12 | You may obtain a copy of the License at 13 | 14 | http://www.apache.org/licenses/LICENSE-2.0 15 | 16 | Unless required by applicable law or agreed to in writing, software 17 | distributed under the License is distributed on an "AS IS" BASIS, 18 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19 | See the License for the specific language governing permissions and 20 | limitations under the License. 21 | 22 | Third-party Licenses: 23 | 24 | All third-party dependencies are listed in the gradle.build files. -------------------------------------------------------------------------------- /cascading-core/src/jmh/java/cascading/InputData.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading; 22 | 23 | /** 24 | * 25 | */ 26 | public interface InputData 27 | { 28 | String BENCH_DATA_PATH = "bench.data.path"; 29 | 30 | String inputPath = System.getProperty( BENCH_DATA_PATH, "bench/employees/" ); 31 | 32 | String employees = inputPath + "employees.csv"; 33 | String salaries = inputPath + "salaries.csv"; 34 | } 35 | -------------------------------------------------------------------------------- /cascading-core/src/jmh/java/cascading/scheme/util/NullAppendable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.scheme.util; 22 | 23 | import java.io.IOException; 24 | 25 | /** 26 | * 27 | */ 28 | class NullAppendable implements Appendable 29 | { 30 | @Override 31 | public Appendable append( CharSequence csq ) throws IOException 32 | { 33 | return this; 34 | } 35 | 36 | @Override 37 | public Appendable append( CharSequence csq, int start, int end ) throws IOException 38 | { 39 | return this; 40 | } 41 | 42 | @Override 43 | public Appendable append( char c ) throws IOException 44 | { 45 | return this; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /cascading-core/src/jmh/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | # 4 | # Project and contact information: https://cascading.wensel.net/ 5 | # 6 | # This file is part of the Cascading project. 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); 9 | # you may not use this file except in compliance with the License. 10 | # You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software 15 | # distributed under the License is distributed on an "AS IS" BASIS, 16 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | # See the License for the specific language governing permissions and 18 | # limitations under the License. 19 | # 20 | 21 | # log4j configuration used during build and unit tests 22 | 23 | log4j.rootLogger=info,stdout 24 | log4j.threshhold=ALL 25 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 26 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 27 | log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n 28 | 29 | log4j.logger.cascading=INFO 30 | #log4j.logger.cascading=DEBUG 31 | #log4j.logger.cascading.flow=DEBUG 32 | #log4j.logger.cascading.operation=DEBUG 33 | #log4j.logger.cascading.cascade=DEBUG 34 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/cascade/planner/IdentifierGraph.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.cascade.planner; 22 | 23 | import cascading.flow.Flow; 24 | import cascading.tap.Tap; 25 | 26 | /** 27 | * 28 | */ 29 | public class IdentifierGraph extends TopologyGraph 30 | { 31 | public IdentifierGraph( Flow... flows ) 32 | { 33 | super( flows ); 34 | } 35 | 36 | protected String getVertex( Flow flow, Tap tap ) 37 | { 38 | return tap.getFullIdentifier( flow.getConfig() ); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/cascade/planner/TapGraph.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.cascade.planner; 22 | 23 | import java.util.Collection; 24 | 25 | import cascading.flow.Flow; 26 | import cascading.tap.Tap; 27 | 28 | /** 29 | * 30 | */ 31 | public class TapGraph extends TopologyGraph 32 | { 33 | public TapGraph( Collection flows ) 34 | { 35 | super( flows.toArray( new Flow[ flows.size() ] ) ); 36 | } 37 | 38 | public TapGraph( Flow... flows ) 39 | { 40 | super( flows ); 41 | } 42 | 43 | protected Tap getVertex( Flow flow, Tap tap ) 44 | { 45 | return tap; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/FlowElement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow; 22 | 23 | import java.io.Serializable; 24 | 25 | /** 26 | * Interface FlowElement is a utility interface used internally to simplify DAG management. It is not intended 27 | * for users to interact with these methods directly. 28 | */ 29 | public interface FlowElement extends Serializable 30 | { 31 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/FlowSkipStrategy.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow; 22 | 23 | import java.io.IOException; 24 | 25 | /** 26 | * Interface FlowSkipStrategy is used to create new strategies that decide when a {@link Flow} should 27 | * be skipped when executed in a {@link cascading.cascade.Cascade}. The default strategy is 28 | * {@link FlowSkipIfSinkNotStale}. 29 | * 30 | * @see cascading.flow.FlowSkipIfSinkExists 31 | * @see FlowSkipIfSinkNotStale 32 | */ 33 | public interface FlowSkipStrategy 34 | { 35 | boolean skipFlow( Flow flow ) throws IOException; 36 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/SliceCounters.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow; 22 | 23 | public enum SliceCounters 24 | { 25 | Tuples_Read, Tuples_Written, Process_Begin_Time, Process_End_Time, Process_Duration, Read_Duration, Write_Duration 26 | } 27 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/StepCounters.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow; 22 | 23 | /** Enum StepCounters lists all counters */ 24 | public enum StepCounters 25 | { 26 | Tuples_Read, Tuples_Written, Tuples_Trapped, Read_Duration, Write_Duration, Process_Begin_Time, Process_End_Time, Process_Duration 27 | } 28 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/DeclaresResults.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner; 22 | 23 | import cascading.tuple.Fields; 24 | 25 | /** 26 | * 27 | */ 28 | public interface DeclaresResults 29 | { 30 | public Fields getFieldDeclaration(); 31 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/graph/AnnotatedGraph.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.graph; 22 | 23 | import cascading.flow.FlowElement; 24 | import cascading.util.EnumMultiMap; 25 | 26 | /** 27 | * 28 | */ 29 | public interface AnnotatedGraph 30 | { 31 | boolean hasAnnotations(); 32 | 33 | EnumMultiMap getAnnotations(); 34 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/graph/Extent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.graph; 22 | 23 | import cascading.flow.FlowElement; 24 | 25 | /** 26 | * Enum Extent provides simple markers for the head and tail of an {@link ElementGraph} {@link FlowElement} graph. 27 | */ 28 | public enum Extent implements FlowElement 29 | { 30 | head, 31 | tail; 32 | 33 | @Override 34 | public String toString() 35 | { 36 | return "[" + name() + "]"; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/graph/IgnoresAnnotationsElementGraph.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.graph; 22 | 23 | /** 24 | * 25 | */ 26 | public class IgnoresAnnotationsElementGraph extends DecoratedElementGraph 27 | { 28 | public IgnoresAnnotationsElementGraph( ElementGraph decorated ) 29 | { 30 | super( decorated ); 31 | } 32 | 33 | @Override 34 | public boolean equals( Object obj ) 35 | { 36 | return ElementGraphs.equalsIgnoreAnnotations( this, (ElementGraph) obj ); 37 | } 38 | 39 | @Override 40 | public int hashCode() 41 | { 42 | return ElementGraphs.hashCodeIgnoreAnnotations( this ); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/iso/expression/ElementCapture.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.iso.expression; 22 | 23 | /** 24 | * 25 | */ 26 | public enum ElementCapture 27 | { 28 | Include, 29 | 30 | /** 31 | * Becomes the anchor at which a match will rotate during partitioning. 32 | */ 33 | Primary, 34 | 35 | /** 36 | * Will be re-captured during partitioning where the Primary acts as an anchor at which the matching rotates 37 | */ 38 | Secondary 39 | } 40 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/iso/expression/Expression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.iso.expression; 22 | 23 | import cascading.flow.planner.PlannerContext; 24 | import cascading.flow.planner.graph.ElementGraph; 25 | 26 | /** 27 | * 28 | */ 29 | public interface Expression 30 | { 31 | boolean applies( PlannerContext plannerContext, ElementGraph elementGraph, Type type ); 32 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/iso/expression/PlannerLevelPipeExpressionGraph.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.iso.expression; 22 | 23 | import cascading.operation.PlannerLevel; 24 | 25 | /** 26 | * 27 | */ 28 | public class PlannerLevelPipeExpressionGraph extends ExpressionGraph 29 | { 30 | public PlannerLevelPipeExpressionGraph( Class plannerLevelClass ) 31 | { 32 | super( new PlannerLevelElementExpression( ElementCapture.Primary, plannerLevelClass ) ); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/iso/subgraph/GraphPartitioner.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.iso.subgraph; 22 | 23 | import java.util.Collection; 24 | 25 | import cascading.flow.FlowElement; 26 | import cascading.flow.planner.PlannerContext; 27 | import cascading.flow.planner.graph.ElementGraph; 28 | 29 | /** 30 | * 31 | */ 32 | public abstract class GraphPartitioner 33 | { 34 | public Partitions partition( PlannerContext plannerContext, ElementGraph elementGraph ) 35 | { 36 | return partition( plannerContext, elementGraph, null ); 37 | } 38 | 39 | public abstract Partitions partition( PlannerContext plannerContext, ElementGraph elementGraph, Collection excludes ); 40 | } 41 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/iso/subgraph/SubGraphIterator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.iso.subgraph; 22 | 23 | import java.util.Iterator; 24 | 25 | import cascading.flow.planner.graph.ElementGraph; 26 | import cascading.flow.planner.iso.ElementAnnotation; 27 | import cascading.util.EnumMultiMap; 28 | 29 | /** 30 | * 31 | */ 32 | public interface SubGraphIterator extends Iterator 33 | { 34 | ElementGraph getElementGraph(); 35 | 36 | EnumMultiMap getAnnotationMap( ElementAnnotation[] annotations ); 37 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/iso/transformer/ElementFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.iso.transformer; 22 | 23 | import cascading.flow.FlowElement; 24 | import cascading.flow.planner.graph.ElementGraph; 25 | 26 | /** 27 | * 28 | */ 29 | public interface ElementFactory 30 | { 31 | FlowElement create( ElementGraph graph, FlowElement flowElement ); 32 | } 33 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/iso/transformer/GraphTransformer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.iso.transformer; 22 | 23 | import cascading.flow.planner.PlannerContext; 24 | import cascading.flow.planner.graph.ElementGraph; 25 | 26 | /** 27 | * 28 | */ 29 | public abstract class GraphTransformer 30 | { 31 | public Transformed transform( In rootGraph ) 32 | { 33 | return transform( new PlannerContext(), rootGraph ); 34 | } 35 | 36 | public abstract Transformed transform( PlannerContext plannerContext, In rootGraph ); 37 | } 38 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/process/FlowNodeFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.process; 22 | 23 | import java.util.List; 24 | 25 | import cascading.flow.FlowNode; 26 | import cascading.flow.planner.graph.ElementGraph; 27 | import cascading.flow.planner.graph.FlowElementGraph; 28 | 29 | /** 30 | * 31 | */ 32 | public interface FlowNodeFactory 33 | { 34 | FlowNode createFlowNode( FlowElementGraph flowElementGraph, ElementGraph nodeSubGraph, List pipelineGraphs ); 35 | 36 | String makeFlowNodeName( FlowNode flowNode, int size, int ordinal ); 37 | } 38 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/process/FlowStepFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.process; 22 | 23 | import cascading.flow.FlowStep; 24 | import cascading.flow.planner.graph.ElementGraph; 25 | 26 | /** 27 | * 28 | */ 29 | public interface FlowStepFactory 30 | { 31 | FlowStep createFlowStep( ElementGraph stepElementGraph, FlowNodeGraph flowNodeGraph ); 32 | 33 | String makeFlowStepName( FlowStep flowStep, int numSteps, int stepNum ); 34 | 35 | FlowNodeFactory getFlowNodeFactory(); 36 | } 37 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/process/ProcessGraphs.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.process; 22 | 23 | import java.util.List; 24 | 25 | import org.jgrapht.Graphs; 26 | 27 | /** 28 | * 29 | */ 30 | public class ProcessGraphs 31 | { 32 | public static List predecessorListOf( ProcessGraph processGraph, ProcessModel processModel ) 33 | { 34 | return Graphs.predecessorListOf( ( (BaseProcessGraph) processGraph ).graph, processModel ); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/ExecAction.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule; 22 | 23 | /** 24 | * 25 | */ 26 | public enum ExecAction 27 | { 28 | Resolve, Rule 29 | } 30 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/Rule.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule; 22 | 23 | /** 24 | * Rule instances are the unit of work applied by a {@link cascading.flow.planner.rule.RuleExec} instance and managed 25 | * by a {@link cascading.flow.planner.rule.RuleRegistry}. 26 | */ 27 | public interface Rule 28 | { 29 | PlanPhase getRulePhase(); 30 | 31 | String getRuleName(); 32 | } 33 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/RuleMode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule; 22 | 23 | /** 24 | * 25 | */ 26 | public enum RuleMode 27 | { 28 | Mutate, 29 | Partition 30 | } 31 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/assertion/MissingGroupAssert.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.assertion; 22 | 23 | import cascading.flow.planner.rule.RuleAssert; 24 | import cascading.flow.planner.rule.expression.MissingGroupExpression; 25 | 26 | import static cascading.flow.planner.rule.PlanPhase.PreBalanceAssembly; 27 | 28 | /** 29 | * 30 | */ 31 | public class MissingGroupAssert extends RuleAssert 32 | { 33 | public MissingGroupAssert() 34 | { 35 | super( 36 | PreBalanceAssembly, 37 | new MissingGroupExpression(), 38 | "Every may only be preceded by another Every or a Group pipe, found: {Secondary}" 39 | ); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/assertion/SplitBeforeEveryAssert.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.assertion; 22 | 23 | import cascading.flow.planner.rule.RuleAssert; 24 | import cascading.flow.planner.rule.expression.SplitBeforeEveryExpression; 25 | 26 | import static cascading.flow.planner.rule.PlanPhase.PreBalanceAssembly; 27 | 28 | /** 29 | * 30 | */ 31 | public class SplitBeforeEveryAssert extends RuleAssert 32 | { 33 | public SplitBeforeEveryAssert() 34 | { 35 | super( 36 | PreBalanceAssembly, 37 | new SplitBeforeEveryExpression(), 38 | "Every instances may not split after a GroupBy or CoGroup pipe, found: {Primary} before: {Secondary}" 39 | ); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/expression/LogicalMergeAnnotatorExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.expression; 22 | 23 | import cascading.flow.planner.rule.RuleExpression; 24 | import cascading.flow.planner.rule.expressiongraph.LogicalMergeExpressionGraph; 25 | import cascading.flow.planner.rule.expressiongraph.NoGroupJoinMergeBoundaryTapExpressionGraph; 26 | 27 | /** 28 | * 29 | */ 30 | public class LogicalMergeAnnotatorExpression extends RuleExpression 31 | { 32 | public LogicalMergeAnnotatorExpression() 33 | { 34 | super( 35 | new NoGroupJoinMergeBoundaryTapExpressionGraph(), 36 | new LogicalMergeExpressionGraph() 37 | ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/expression/NoOpPipeExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.expression; 22 | 23 | import cascading.flow.planner.rule.RuleExpression; 24 | import cascading.flow.planner.rule.expressiongraph.NoOpPipeExpressionGraph; 25 | 26 | /** 27 | * 28 | */ 29 | public class NoOpPipeExpression extends RuleExpression 30 | { 31 | public NoOpPipeExpression() 32 | { 33 | super( new NoOpPipeExpressionGraph() ); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/expression/NonBlockedBlockedJoinAnnotatorExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.expression; 22 | 23 | import cascading.flow.planner.rule.RuleExpression; 24 | import cascading.flow.planner.rule.expressiongraph.NoCoGroupJoinTapExpressionGraph; 25 | import cascading.flow.planner.rule.expressiongraph.NonBlockedBlockedJoinExpressionGraph; 26 | 27 | /** 28 | * 29 | */ 30 | public class NonBlockedBlockedJoinAnnotatorExpression extends RuleExpression 31 | { 32 | public NonBlockedBlockedJoinAnnotatorExpression() 33 | { 34 | super( 35 | new NoCoGroupJoinTapExpressionGraph(), 36 | new NonBlockedBlockedJoinExpressionGraph() 37 | ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/expression/PlannerLevelExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.expression; 22 | 23 | import cascading.flow.planner.iso.expression.PlannerLevelPipeExpressionGraph; 24 | import cascading.flow.planner.rule.RuleExpression; 25 | import cascading.operation.PlannerLevel; 26 | 27 | /** 28 | * 29 | */ 30 | public class PlannerLevelExpression extends RuleExpression 31 | { 32 | public PlannerLevelExpression( Class plannerLevelClass ) 33 | { 34 | super( new PlannerLevelPipeExpressionGraph( plannerLevelClass ) ); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/expressiongraph/OnlyPipeExpressionGraph.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.expressiongraph; 22 | 23 | import cascading.flow.planner.iso.expression.ElementCapture; 24 | import cascading.flow.planner.iso.expression.ExpressionGraph; 25 | import cascading.flow.planner.iso.expression.FlowElementExpression; 26 | import cascading.pipe.Pipe; 27 | 28 | /** 29 | * 30 | */ 31 | public class OnlyPipeExpressionGraph extends ExpressionGraph 32 | { 33 | public OnlyPipeExpressionGraph() 34 | { 35 | super( new FlowElementExpression( ElementCapture.Primary, true, Pipe.class ) ); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/partitioner/WholeGraphNodePartitioner.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.partitioner; 22 | 23 | import static cascading.flow.planner.rule.PlanPhase.PartitionNodes; 24 | 25 | /** 26 | * 27 | */ 28 | public class WholeGraphNodePartitioner extends WholeGraphRulePartitioner 29 | { 30 | public WholeGraphNodePartitioner() 31 | { 32 | super( 33 | PartitionNodes 34 | ); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/partitioner/WholeGraphStepPartitioner.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.partitioner; 22 | 23 | import static cascading.flow.planner.rule.PlanPhase.PartitionSteps; 24 | 25 | /** 26 | * 27 | */ 28 | public class WholeGraphStepPartitioner extends WholeGraphRulePartitioner 29 | { 30 | public WholeGraphStepPartitioner() 31 | { 32 | super( 33 | PartitionSteps 34 | ); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/transformer/ApplyAssertionLevelTransformer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.transformer; 22 | 23 | import cascading.flow.planner.rule.expression.PlannerLevelExpression; 24 | import cascading.operation.AssertionLevel; 25 | 26 | import static cascading.flow.planner.rule.PlanPhase.PreResolveAssembly; 27 | 28 | /** 29 | * 30 | */ 31 | public class ApplyAssertionLevelTransformer extends RuleContractedTransformer 32 | { 33 | public ApplyAssertionLevelTransformer() 34 | { 35 | super( 36 | PreResolveAssembly, 37 | new PlannerLevelExpression( AssertionLevel.class ) 38 | ); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/transformer/ApplyDebugLevelTransformer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.transformer; 22 | 23 | import cascading.flow.planner.rule.expression.PlannerLevelExpression; 24 | import cascading.operation.DebugLevel; 25 | 26 | import static cascading.flow.planner.rule.PlanPhase.PreResolveAssembly; 27 | 28 | /** 29 | * 30 | */ 31 | public class ApplyDebugLevelTransformer extends RuleContractedTransformer 32 | { 33 | public ApplyDebugLevelTransformer() 34 | { 35 | super( 36 | PreResolveAssembly, 37 | new PlannerLevelExpression( DebugLevel.class ) 38 | ); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/transformer/BoundaryElementFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.transformer; 22 | 23 | import cascading.flow.planner.iso.transformer.ElementFactory; 24 | 25 | /** 26 | * 27 | */ 28 | public abstract class BoundaryElementFactory implements ElementFactory 29 | { 30 | public static final String BOUNDARY_PIPE = "cascading.registry.boundary_pipe"; 31 | } 32 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/transformer/IntermediatePipeElementFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.transformer; 22 | 23 | import cascading.flow.planner.iso.transformer.ElementFactory; 24 | 25 | /** 26 | * 27 | */ 28 | public abstract class IntermediatePipeElementFactory implements ElementFactory 29 | { 30 | public static final String IDENTITY = "cascading.registry.pipe.identity"; 31 | } 32 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/transformer/IntermediateTapElementFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.transformer; 22 | 23 | import cascading.flow.planner.iso.transformer.ElementFactory; 24 | 25 | /** 26 | * 27 | */ 28 | public abstract class IntermediateTapElementFactory implements ElementFactory 29 | { 30 | public static final String TEMP_TAP = "cascading.registry.tap.intermediate"; 31 | public static final String ACCUMULATED_TAP = "cascading.registry.tap.accumulated"; 32 | } 33 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/transformer/RemoveNoOpPipeTransformer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.transformer; 22 | 23 | import cascading.flow.planner.rule.expression.NoOpPipeExpression; 24 | 25 | import static cascading.flow.planner.rule.PlanPhase.PreResolveAssembly; 26 | 27 | /** 28 | * 29 | */ 30 | public class RemoveNoOpPipeTransformer extends RuleContractedTransformer 31 | { 32 | public RemoveNoOpPipeTransformer() 33 | { 34 | super( 35 | PreResolveAssembly, 36 | new NoOpPipeExpression() 37 | ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/planner/rule/util/LogLevel.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.planner.rule.util; 22 | 23 | /** 24 | * 25 | */ 26 | public enum LogLevel 27 | { 28 | TRACE, DEBUG, INFO 29 | } 30 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/TrapException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream; 22 | 23 | import cascading.flow.stream.duct.DuctException; 24 | 25 | /** 26 | * TrapException is a pass through exception allowing trap io failures to propagate past upstream traps. 27 | */ 28 | public class TrapException extends DuctException 29 | { 30 | public TrapException( String message, Throwable throwable ) 31 | { 32 | super( message, throwable ); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/annotations/BlockingMode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.annotations; 22 | 23 | /** 24 | */ 25 | public enum BlockingMode 26 | { 27 | NonBlocked, 28 | Blocked 29 | } 30 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/annotations/RoleMode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.annotations; 22 | 23 | /** 24 | * 25 | */ 26 | public enum RoleMode 27 | { 28 | Logical, 29 | Physical 30 | } 31 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/annotations/StreamMode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.annotations; 22 | 23 | /** 24 | */ 25 | public enum StreamMode 26 | { 27 | Streamed, 28 | Accumulated 29 | } 30 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/duct/CloseWindow.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.duct; 22 | 23 | /** 24 | * 25 | */ 26 | public interface CloseWindow 27 | { 28 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/duct/Collapsing.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.duct; 22 | 23 | /** Collapsing marks a Duct as collapsing start/complete events from multiple incoming paths */ 24 | public interface Collapsing 25 | { 26 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/duct/DuctException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.duct; 22 | 23 | /** 24 | * 25 | */ 26 | public class DuctException extends RuntimeException 27 | { 28 | public DuctException( Throwable throwable ) 29 | { 30 | super( throwable ); 31 | } 32 | 33 | public DuctException( String message, Throwable throwable ) 34 | { 35 | super( message, throwable ); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/duct/Gate.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.duct; 22 | 23 | /** 24 | * Denotes there will be multiple input paths into this duct 25 | */ 26 | public abstract class Gate extends Duct 27 | { 28 | public Gate() 29 | { 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/duct/Grouping.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.duct; 22 | 23 | import java.util.Iterator; 24 | 25 | import cascading.pipe.joiner.JoinerClosure; 26 | 27 | /** 28 | * 29 | */ 30 | public class Grouping 31 | { 32 | public JoinerClosure joinerClosure; 33 | public Group key; 34 | public ItemIterator joinIterator; 35 | } 36 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/duct/OpenWindow.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.duct; 22 | 23 | /** 24 | * 25 | */ 26 | public interface OpenWindow 27 | { 28 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/duct/Reducing.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.duct; 22 | 23 | /** 24 | * 25 | */ 26 | public interface Reducing 27 | { 28 | void startGroup( Duct previous, Group group ); 29 | 30 | void completeGroup( Duct previous, Result result ); 31 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/duct/Stage.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.duct; 22 | 23 | /** 24 | * 25 | */ 26 | public class Stage extends Duct 27 | { 28 | public void receive( Duct previous, int ordinal, Incoming incoming ) 29 | { 30 | next.receive( this, ordinal, (Outgoing) incoming ); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/duct/Window.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.duct; 22 | 23 | /** 24 | * 25 | */ 26 | public interface Window 27 | { 28 | } 29 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/element/ElementDuct.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.element; 22 | 23 | import java.util.List; 24 | import java.util.Set; 25 | 26 | import cascading.flow.FlowElement; 27 | import cascading.flow.planner.Scope; 28 | 29 | /** 30 | * 31 | */ 32 | public interface ElementDuct 33 | { 34 | Set getBranchNames(); 35 | 36 | void setBranchNames( Set branchNames ); 37 | 38 | FlowElement getFlowElement(); 39 | 40 | void setTrapHandler( TrapHandler trapHandler ); 41 | 42 | boolean hasTrapHandler(); 43 | 44 | List getIncomingScopes(); 45 | 46 | List getOutgoingScopes(); 47 | } 48 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/element/EveryStage.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.element; 22 | 23 | import cascading.flow.FlowProcess; 24 | import cascading.pipe.Every; 25 | import cascading.pipe.Operator; 26 | 27 | /** 28 | * 29 | */ 30 | public abstract class EveryStage extends OperatorStage 31 | { 32 | final Every every; 33 | 34 | public EveryStage( FlowProcess flowProcess, Every every ) 35 | { 36 | super( flowProcess, every ); 37 | this.every = every; 38 | } 39 | 40 | @Override 41 | public Operator getOperator() 42 | { 43 | return every; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/element/InputSource.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.element; 22 | 23 | /** 24 | * 25 | */ 26 | public interface InputSource 27 | { 28 | void run( Object input ) throws Throwable; 29 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/flow/stream/graph/IORole.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.stream.graph; 22 | 23 | /** 24 | * Enum IORole specifies how a FlowElement will be used during streaming. 25 | */ 26 | public enum IORole 27 | { 28 | sink, source, both, pass 29 | } 30 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/management/annotation/Order.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.management.annotation; 22 | 23 | /** 24 | * Order describes the order in which Property annotations shall be displayed. 25 | */ 26 | public enum Order 27 | { 28 | /** Sort in alphabetical order. */ 29 | ALPHABETICAL, 30 | 31 | /** Sort as given in the class definition. Note that this might be JVM specific. */ 32 | DECLARED, 33 | 34 | /** Sort as given in the @PropertyOrder annotation on the class. */ 35 | GIVEN 36 | } 37 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/management/annotation/PropertyDescription.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.management.annotation; 22 | 23 | import java.lang.annotation.ElementType; 24 | import java.lang.annotation.Retention; 25 | import java.lang.annotation.RetentionPolicy; 26 | import java.lang.annotation.Target; 27 | 28 | /** 29 | * PropertyDescription is an annotation that can be used to describe the @Property annotation present on the 30 | * same {@link java.lang.reflect.AnnotatedElement}. 31 | */ 32 | @Retention(RetentionPolicy.RUNTIME) 33 | @Target({ElementType.METHOD, ElementType.FIELD}) 34 | public @interface PropertyDescription 35 | { 36 | String value(); 37 | } 38 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/operation/Assertion.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.operation; 22 | 23 | /** Interface Assertion is the base interface for all stream assertions. Implementers must also extend {@link BaseOperation}. */ 24 | public interface Assertion extends PlannedOperation 25 | { 26 | } 27 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/operation/PlannedOperation.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.operation; 22 | 23 | /** 24 | * Interface PlannedOperation is implemented by all {@link Operation} implementations 25 | * that use a {@link PlannerLevel} value to inform the {@link cascading.flow.planner.FlowPlanner} how to treat the operation 26 | * during job planning. 27 | */ 28 | public interface PlannedOperation extends Operation 29 | { 30 | boolean supportsPlannerLevel( PlannerLevel plannerLevel ); 31 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/operation/ValueAssertion.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.operation; 22 | 23 | import cascading.flow.FlowProcess; 24 | 25 | /** 26 | * Class ValueAssertion is a kind of {@link Assertion} used with the {@link cascading.pipe.Each} pipe Operator. 27 | *

28 | * Implementers must also extend {@link BaseOperation}. 29 | */ 30 | public interface ValueAssertion extends Assertion 31 | { 32 | /** 33 | * Method doAssert performs the assertion. 34 | * 35 | * @param flowProcess of type FlowProcess 36 | * @param assertionCall of type ValueAssertionCall 37 | */ 38 | void doAssert( FlowProcess flowProcess, ValueAssertionCall assertionCall ); 39 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/pipe/Group.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.pipe; 22 | 23 | import java.util.Map; 24 | 25 | import cascading.flow.FlowElement; 26 | import cascading.tuple.Fields; 27 | 28 | /** 29 | * 30 | */ 31 | public interface Group extends FlowElement 32 | { 33 | String getName(); 34 | 35 | boolean isGroupBy(); 36 | 37 | boolean isCoGroup(); 38 | 39 | boolean isSortReversed(); 40 | 41 | boolean isSorted(); 42 | 43 | Map getKeySelectors(); 44 | 45 | Map getSortingSelectors(); 46 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/pipe/joiner/BaseJoiner.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.pipe.joiner; 22 | 23 | import cascading.flow.planner.DeclaresResults; 24 | import cascading.tuple.Fields; 25 | 26 | /** 27 | * 28 | */ 29 | public abstract class BaseJoiner implements Joiner, DeclaresResults 30 | { 31 | Fields fieldDeclaration; 32 | 33 | public BaseJoiner() 34 | { 35 | } 36 | 37 | public BaseJoiner( Fields fieldDeclaration ) 38 | { 39 | this.fieldDeclaration = fieldDeclaration; 40 | } 41 | 42 | public Fields getFieldDeclaration() 43 | { 44 | return fieldDeclaration; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/scheme/FileFormat.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.scheme; 22 | 23 | /** 24 | * 25 | */ 26 | public interface FileFormat 27 | { 28 | String getExtension(); 29 | } 30 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/scheme/util/FieldTypeResolver.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.scheme.util; 22 | 23 | import java.io.Serializable; 24 | import java.lang.reflect.Type; 25 | 26 | /** 27 | * 28 | */ 29 | public interface FieldTypeResolver extends Serializable 30 | { 31 | Type inferTypeFrom( int ordinal, String fieldName ); 32 | 33 | String cleanField( int ordinal, String fieldName, Type type ); 34 | 35 | String prepareField( int i, String fieldName, Type type ); 36 | } 37 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/stats/StatsListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.stats; 22 | 23 | /** 24 | * For internal use to track status transitions 25 | */ 26 | public interface StatsListener 27 | { 28 | /** 29 | * @param current 30 | * @param fromStatus the originating status, may be null 31 | * @param toStatus 32 | */ 33 | void notify( CascadingStats current, CascadingStats.Status fromStatus, CascadingStats.Status toStatus ); 34 | } 35 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tap/CompositeTap.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tap; 22 | 23 | import java.util.Iterator; 24 | 25 | /** 26 | * Interface CompositeTap marks {@link Tap} classes as having child Tap instances. 27 | *

28 | * This information is required by the planner in order to properly configure the underlying platform. 29 | */ 30 | public interface CompositeTap 31 | { 32 | Iterator getChildTaps(); 33 | 34 | long getNumChildTaps(); 35 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tap/SinkMode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tap; 22 | 23 | /** 24 | * Enum SinkMode identifies supported modes a Tap may utilize when used as a sink. 25 | *

26 | * Mode KEEP is the default. Typically a failure will result if the resource exists and there is an attempt to 27 | * write to it. 28 | *

29 | * Mode REPLACE will delete/remove the resource before any attempts to write. 30 | *

31 | * Mode UPDATE will attempt to re-use to the resource, if supported, and update data in place. 32 | */ 33 | public enum SinkMode 34 | { 35 | KEEP, 36 | REPLACE, 37 | UPDATE 38 | } 39 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tuple/coerce/CharacterCoerce.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.coerce; 22 | 23 | import java.lang.reflect.Type; 24 | import java.util.Map; 25 | 26 | /** 27 | * 28 | */ 29 | public class CharacterCoerce extends Coercions.Coerce 30 | { 31 | public CharacterCoerce( Map coercions ) 32 | { 33 | super( coercions ); 34 | } 35 | 36 | @Override 37 | public Class getCanonicalType() 38 | { 39 | return char.class; 40 | } 41 | 42 | @Override 43 | public Character coerce( Object value ) 44 | { 45 | if( value == null ) 46 | return Character.MIN_VALUE; 47 | 48 | return value.toString().charAt( 0 ); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tuple/coerce/CharacterObjectCoerce.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.coerce; 22 | 23 | import java.lang.reflect.Type; 24 | import java.util.Map; 25 | 26 | /** 27 | * 28 | */ 29 | public class CharacterObjectCoerce extends Coercions.Coerce 30 | { 31 | public CharacterObjectCoerce( Map coercions ) 32 | { 33 | super( coercions ); 34 | } 35 | 36 | @Override 37 | public Class getCanonicalType() 38 | { 39 | return Character.class; 40 | } 41 | 42 | @Override 43 | public Character coerce( Object value ) 44 | { 45 | if( value == null ) 46 | return null; 47 | 48 | return value.toString().charAt( 0 ); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tuple/coerce/ObjectCoerce.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.coerce; 22 | 23 | import java.lang.reflect.Type; 24 | import java.util.Map; 25 | 26 | /** 27 | * 28 | */ 29 | public class ObjectCoerce extends Coercions.Coerce 30 | { 31 | public ObjectCoerce( Map coercions ) 32 | { 33 | super( coercions ); 34 | } 35 | 36 | @Override 37 | public Class getCanonicalType() 38 | { 39 | return Object.class; 40 | } 41 | 42 | @Override 43 | public Object coerce( Object value ) 44 | { 45 | return value; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tuple/coerce/StringCoerce.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.coerce; 22 | 23 | import java.lang.reflect.Type; 24 | import java.util.Map; 25 | 26 | /** 27 | * 28 | */ 29 | public class StringCoerce extends Coercions.Coerce 30 | { 31 | public StringCoerce( Map coercions ) 32 | { 33 | super( coercions ); 34 | } 35 | 36 | @Override 37 | public Class getCanonicalType() 38 | { 39 | return String.class; 40 | } 41 | 42 | @Override 43 | public String coerce( Object value ) 44 | { 45 | if( value == null ) 46 | return null; 47 | 48 | return value.toString(); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tuple/io/KeyIndexTuple.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.io; 22 | 23 | import cascading.tuple.Tuple; 24 | 25 | /** 26 | * 27 | */ 28 | public class KeyIndexTuple extends IndexTuple 29 | { 30 | public KeyIndexTuple() 31 | { 32 | } 33 | 34 | public KeyIndexTuple( int index, Tuple tuple ) 35 | { 36 | super( index, tuple ); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tuple/io/ValueIndexTuple.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.io; 22 | 23 | import cascading.tuple.Tuple; 24 | 25 | /** 26 | * 27 | */ 28 | public class ValueIndexTuple extends IndexTuple 29 | { 30 | public ValueIndexTuple() 31 | { 32 | } 33 | 34 | public ValueIndexTuple( int index, Tuple tuple ) 35 | { 36 | super( index, tuple ); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tuple/type/CoercionFrom.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.type; 22 | 23 | import java.io.Serializable; 24 | 25 | /** 26 | * Interface CoercionFrom represents a mapping function that coerces a canonical value (of type {@code From}) 27 | * to an expected value (of type {@code To}). 28 | */ 29 | @FunctionalInterface 30 | public interface CoercionFrom extends Serializable 31 | { 32 | To coerce( From from ); 33 | } 34 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tuple/type/SerializableType.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.type; 22 | 23 | import java.io.Serializable; 24 | import java.lang.reflect.Type; 25 | 26 | /** 27 | * 28 | */ 29 | public interface SerializableType extends Type, Serializable 30 | { 31 | Class getSerializer( Class base ); 32 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tuple/type/ToCanonical.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.type; 22 | 23 | import java.io.Serializable; 24 | 25 | /** 26 | * Interface ToCanonical represents a mapping function that coerces a value (of type {@code From}) 27 | * to a canonical value (of type {@code To}). 28 | */ 29 | @FunctionalInterface 30 | public interface ToCanonical extends Serializable 31 | { 32 | To canonical( From from ); 33 | } 34 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tuple/util/Resettable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.util; 22 | 23 | /** 24 | * 25 | */ 26 | public interface Resettable 27 | { 28 | void reset( V... values ); 29 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tuple/util/Resettable1.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.util; 22 | 23 | /** 24 | * 25 | */ 26 | public interface Resettable1 27 | { 28 | void reset( V value ); 29 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tuple/util/Resettable2.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.util; 22 | 23 | /** 24 | * 25 | */ 26 | public interface Resettable2 27 | { 28 | void reset( V1 lhs, V2 rhs ); 29 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/tuple/util/TupleBuilder.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.util; 22 | 23 | import cascading.tuple.Tuple; 24 | 25 | /** 26 | * 27 | */ 28 | public abstract class TupleBuilder 29 | { 30 | public abstract Tuple makeResult( Tuple input, Tuple output ); 31 | } 32 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/CloseableIterator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.util; 22 | 23 | import java.io.Closeable; 24 | import java.util.Iterator; 25 | 26 | /** Interface CloseableIterator is a helper interface granting an Iterator a close method. */ 27 | public interface CloseableIterator extends Iterator, Closeable 28 | { 29 | } 30 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/EnumMultiMap.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.util; 22 | 23 | import java.util.IdentityHashMap; 24 | import java.util.Map; 25 | import java.util.Set; 26 | 27 | /** 28 | * 29 | */ 30 | public class EnumMultiMap extends SetMultiMap 31 | { 32 | public EnumMultiMap() 33 | { 34 | } 35 | 36 | public EnumMultiMap( EnumMultiMap map ) 37 | { 38 | addAll( map ); 39 | } 40 | 41 | @Override 42 | protected Map> createMap() 43 | { 44 | return new IdentityHashMap<>(); 45 | } 46 | 47 | @Override 48 | protected Set createCollection() 49 | { 50 | return Util.createIdentitySet(); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/ForeverValueIterator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.util; 22 | 23 | /** The ForeverValueIterator class will iterate over a single value forever. */ 24 | public class ForeverValueIterator extends SingleValueIterator 25 | { 26 | public ForeverValueIterator( Value value ) 27 | { 28 | super( value ); 29 | } 30 | 31 | @Override 32 | public Value next() 33 | { 34 | return value; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/SetMultiMap.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.util; 22 | 23 | import java.util.Collections; 24 | import java.util.HashMap; 25 | import java.util.LinkedHashSet; 26 | import java.util.Map; 27 | import java.util.Set; 28 | 29 | /** 30 | * 31 | */ 32 | public class SetMultiMap extends MultiMap, K, V> 33 | { 34 | @Override 35 | protected Map> createMap() 36 | { 37 | return new HashMap<>(); 38 | } 39 | 40 | protected Set createCollection() 41 | { 42 | return new LinkedHashSet<>(); 43 | } 44 | 45 | protected Set emptyCollection() 46 | { 47 | return Collections.emptySet(); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/SingleCloseableInputIterator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.util; 22 | 23 | import java.io.Closeable; 24 | import java.io.IOException; 25 | 26 | /** 27 | * 28 | */ 29 | public class SingleCloseableInputIterator extends SingleValueCloseableIterator 30 | { 31 | public SingleCloseableInputIterator( Closeable input ) 32 | { 33 | super( input ); 34 | } 35 | 36 | @Override 37 | public void close() throws IOException 38 | { 39 | getCloseableInput().close(); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/Traceable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.util; 22 | 23 | /** 24 | * Indicates that a class has trace fields usable from TraceUtil 25 | */ 26 | public interface Traceable 27 | { 28 | /** 29 | * Method getTrace returns a String that pinpoints the caller that created this instance. 30 | * 31 | * @return String 32 | */ 33 | String getTrace(); 34 | } 35 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/cache/CascadingCache.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.util.cache; 22 | 23 | import java.util.Map; 24 | 25 | /** 26 | * Interface that defines a Cache. 27 | */ 28 | public interface CascadingCache extends Map 29 | { 30 | /** Method to initialize the Cache. Any setup should be done in here. */ 31 | void initialize(); 32 | 33 | /** Sets the capacity of the Cache. */ 34 | void setCapacity( int capacity ); 35 | 36 | /** 37 | * Returns the capacity of this cache. 38 | */ 39 | int getCapacity(); 40 | 41 | /** Sets the {@link CacheEvictionCallback} of this Cache. */ 42 | void setCacheEvictionCallback( CacheEvictionCallback cacheEvictionCallback ); 43 | } 44 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/cache/DirectMappedCacheFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.util.cache; 22 | 23 | import cascading.flow.FlowProcess; 24 | 25 | /** 26 | * Concrete sub-class of {@link cascading.util.cache.BaseCacheFactory} for creating 27 | * {@link cascading.util.cache.DirectMappedCache} instances. 28 | */ 29 | public class DirectMappedCacheFactory extends BaseCacheFactory 30 | { 31 | @Override 32 | public CascadingCache create( FlowProcess flowProcess ) 33 | { 34 | return new DirectMappedCache(); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/cache/LRUHashMapCacheFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.util.cache; 22 | 23 | import cascading.flow.FlowProcess; 24 | 25 | /** 26 | * Concrete sub-class of {@link cascading.util.cache.BaseCacheFactory} for creating {@link LRUHashMapCache} 27 | * instances. 28 | */ 29 | public class LRUHashMapCacheFactory extends BaseCacheFactory 30 | { 31 | @Override 32 | public CascadingCache create( FlowProcess flowProcess ) 33 | { 34 | return new LRUHashMapCache(); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/cache/OrderedHashMapCacheFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.util.cache; 22 | 23 | import cascading.flow.FlowProcess; 24 | 25 | /** 26 | * Concrete sub-class of {@link cascading.util.cache.BaseCacheFactory} for creating {@link cascading.util.cache.OrderedHashMapCache} 27 | * instances. 28 | */ 29 | public class OrderedHashMapCacheFactory extends BaseCacheFactory 30 | { 31 | 32 | @Override 33 | public CascadingCache create( FlowProcess flowProcess ) 34 | { 35 | return new OrderedHashMapCache(); 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/jgrapht/ComponentAttributeProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | /* 22 | * See package LICENSE.txt for additional license information. 23 | */ 24 | 25 | package cascading.util.jgrapht; 26 | 27 | import java.util.Map; 28 | 29 | /** 30 | * 31 | */ 32 | public interface ComponentAttributeProvider 33 | { 34 | Map getComponentAttributes( T component ); 35 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/jgrapht/EdgeNameProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | /* 22 | * See package LICENSE.txt for additional license information. 23 | */ 24 | 25 | package cascading.util.jgrapht; 26 | 27 | /** 28 | * 29 | */ 30 | public interface EdgeNameProvider 31 | { 32 | String getEdgeName( E edge ); 33 | } -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/jgrapht/LICENSE.txt: -------------------------------------------------------------------------------- 1 | All source code in the cascading.util.jgrapht package is copyright and licensed under the terms of the JGraphT project. 2 | 3 | URL: http://jgrapht.org 4 | Version: 0.9.1 5 | 6 | ========================================== 7 | JGraphT : a free Java graph-theory library 8 | ========================================== 9 | 10 | Project Info: http://jgrapht.sourceforge.net/ 11 | Project Creator: Barak Naveh (http://sourceforge.net/users/barak_naveh) 12 | 13 | (C) Copyright 2003-2008, by Barak Naveh and Contributors. 14 | 15 | This program and the accompanying materials are dual-licensed under 16 | either 17 | 18 | (a) the terms of the GNU Lesser General Public License version 2.1 19 | as published by the Free Software Foundation, or (at your option) any 20 | later version. 21 | or (per the licensee's choosing) 22 | 23 | (b) the terms of the Eclipse Public License v1.0 as published by 24 | the Eclipse Foundation. 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/jgrapht/StringEdgeNameProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | /* 22 | * See package LICENSE.txt for additional license information. 23 | */ 24 | 25 | package cascading.util.jgrapht; 26 | 27 | /** 28 | * 29 | */ 30 | public class StringEdgeNameProvider implements EdgeNameProvider 31 | { 32 | public StringEdgeNameProvider() 33 | { 34 | } 35 | 36 | @Override 37 | public String getEdgeName( E edge ) 38 | { 39 | return edge.toString(); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/jgrapht/StringNameProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | /* 22 | * See package LICENSE.txt for additional license information. 23 | */ 24 | 25 | package cascading.util.jgrapht; 26 | 27 | public class StringNameProvider implements VertexNameProvider 28 | { 29 | public StringNameProvider() 30 | { 31 | } 32 | 33 | @Override 34 | public String getVertexName( V vertex ) 35 | { 36 | return vertex.toString(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /cascading-core/src/main/java/cascading/util/jgrapht/VertexNameProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | /* 22 | * See package LICENSE.txt for additional license information. 23 | */ 24 | 25 | package cascading.util.jgrapht; 26 | 27 | /** 28 | * 29 | */ 30 | public interface VertexNameProvider 31 | { 32 | String getVertexName( V vertex ); 33 | } 34 | -------------------------------------------------------------------------------- /cascading-core/src/test/java/cascading/flow/iso/NonFunction.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.iso; 22 | 23 | import cascading.flow.FlowProcess; 24 | import cascading.operation.BaseOperation; 25 | import cascading.operation.Function; 26 | import cascading.operation.FunctionCall; 27 | import cascading.tuple.Fields; 28 | 29 | /** 30 | * 31 | */ 32 | public class NonFunction extends BaseOperation implements Function 33 | { 34 | public NonFunction( Fields fieldDeclaration ) 35 | { 36 | super( fieldDeclaration ); 37 | } 38 | 39 | @Override 40 | public void operate( FlowProcess flowProcess, FunctionCall functionCall ) 41 | { 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /cascading-core/src/test/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | # 4 | # Project and contact information: https://cascading.wensel.net/ 5 | # 6 | # This file is part of the Cascading project. 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); 9 | # you may not use this file except in compliance with the License. 10 | # You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software 15 | # distributed under the License is distributed on an "AS IS" BASIS, 16 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | # See the License for the specific language governing permissions and 18 | # limitations under the License. 19 | # 20 | 21 | # log4j configuration used during build and unit tests 22 | 23 | log4j.rootLogger=info,stdout 24 | log4j.threshhold=ALL 25 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 26 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 27 | log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n 28 | 29 | log4j.logger.cascading=INFO 30 | #log4j.logger.cascading=DEBUG 31 | #log4j.logger.cascading.flow=DEBUG 32 | #log4j.logger.cascading.operation=DEBUG 33 | #log4j.logger.cascading.cascade=DEBUG 34 | -------------------------------------------------------------------------------- /cascading-expression/build.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | dependencies { 22 | api project( ':cascading-core' ) 23 | 24 | api group: 'org.codehaus.janino', name: 'janino', version: '3.1.6' 25 | 26 | compileOnly group: 'org.slf4j', name: 'slf4j-api', version: '1.7.36' 27 | 28 | testImplementation( resolveTests( project( ':cascading-core' ) ) ) 29 | } 30 | 31 | javadoc { 32 | configure( options ) { 33 | links << 'http://janino.unkrig.de/javadoc/' 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /cascading-expression/src/test/java/cascading/operation/expression/Extended.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.operation.expression; 22 | 23 | /** 24 | * 25 | */ 26 | public class Extended 27 | { 28 | public static String returnValue( String value ) 29 | { 30 | return value; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /cascading-hadoop3-common/src/main/java/cascading/flow/hadoop/planner/rule/expression/ConsecutiveTapsPartitionExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop.planner.rule.expression; 22 | 23 | import cascading.flow.planner.rule.RuleExpression; 24 | import cascading.flow.planner.rule.expressiongraph.ConsecutiveTapsExpressionGraph; 25 | import cascading.flow.planner.rule.expressiongraph.NoGroupTapExpressionGraph; 26 | 27 | /** 28 | * 29 | */ 30 | public class ConsecutiveTapsPartitionExpression extends RuleExpression 31 | { 32 | public ConsecutiveTapsPartitionExpression() 33 | { 34 | super( 35 | new NoGroupTapExpressionGraph(), 36 | new ConsecutiveTapsExpressionGraph() 37 | ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /cascading-hadoop3-common/src/main/java/cascading/flow/hadoop/planner/rule/expression/DualStreamedAccumulatedExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop.planner.rule.expression; 22 | 23 | import cascading.flow.planner.rule.RuleExpression; 24 | import cascading.flow.planner.rule.expressiongraph.DualStreamedAccumulatedExpressionGraph; 25 | import cascading.flow.planner.rule.expressiongraph.NoMergeTapExpressionGraph; 26 | 27 | /** 28 | * 29 | */ 30 | public class DualStreamedAccumulatedExpression extends RuleExpression 31 | { 32 | public DualStreamedAccumulatedExpression() 33 | { 34 | super( 35 | new NoMergeTapExpressionGraph(), 36 | new DualStreamedAccumulatedExpressionGraph() 37 | ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /cascading-hadoop3-common/src/main/java/cascading/flow/hadoop/planner/rule/expression/GroupTapPartitionExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop.planner.rule.expression; 22 | 23 | import cascading.flow.planner.rule.RuleExpression; 24 | import cascading.flow.planner.rule.expressiongraph.GroupTapExpressionGraph; 25 | import cascading.flow.planner.rule.expressiongraph.NoGroupTapExpressionGraph; 26 | 27 | /** 28 | * 29 | */ 30 | public class GroupTapPartitionExpression extends RuleExpression 31 | { 32 | public GroupTapPartitionExpression() 33 | { 34 | super( 35 | new NoGroupTapExpressionGraph(), 36 | new GroupTapExpressionGraph() 37 | ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /cascading-hadoop3-common/src/main/java/cascading/flow/hadoop/planner/rule/expression/StreamedAccumulatedTapsPipelinePartitionExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop.planner.rule.expression; 22 | 23 | import cascading.flow.hadoop.planner.rule.expressiongraph.NoGroupTapExpressionGraph; 24 | import cascading.flow.planner.rule.RuleExpression; 25 | 26 | /** 27 | * 28 | */ 29 | public class StreamedAccumulatedTapsPipelinePartitionExpression extends RuleExpression 30 | { 31 | public StreamedAccumulatedTapsPipelinePartitionExpression() 32 | { 33 | super( 34 | new NoGroupTapExpressionGraph(), 35 | new StreamedAccumulatedTapsExpressionGraph() 36 | ); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /cascading-hadoop3-common/src/main/java/cascading/flow/hadoop/planner/rule/expression/TapGroupTapPartitionExpression.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop.planner.rule.expression; 22 | 23 | import cascading.flow.planner.rule.RuleExpression; 24 | import cascading.flow.planner.rule.expressiongraph.NoGroupTapExpressionGraph; 25 | import cascading.flow.planner.rule.expressiongraph.TapGroupTapExpressionGraph; 26 | 27 | /** 28 | * 29 | */ 30 | public class TapGroupTapPartitionExpression extends RuleExpression 31 | { 32 | public TapGroupTapPartitionExpression() 33 | { 34 | super( 35 | new NoGroupTapExpressionGraph(), 36 | new TapGroupTapExpressionGraph() 37 | ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /cascading-hadoop3-common/src/main/java/cascading/flow/hadoop/planner/rule/partitioner/ConsecutiveTapsNodePartitioner.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop.planner.rule.partitioner; 22 | 23 | import cascading.flow.hadoop.planner.rule.expression.ConsecutiveTapsPartitionExpression; 24 | import cascading.flow.planner.rule.partitioner.ExpressionRulePartitioner; 25 | 26 | import static cascading.flow.planner.rule.PlanPhase.PartitionNodes; 27 | 28 | /** 29 | * 30 | */ 31 | public class ConsecutiveTapsNodePartitioner extends ExpressionRulePartitioner 32 | { 33 | public ConsecutiveTapsNodePartitioner() 34 | { 35 | super( 36 | PartitionNodes, 37 | new ConsecutiveTapsPartitionExpression() 38 | ); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /cascading-hadoop3-common/src/main/java/cascading/flow/hadoop/planner/rule/partitioner/ConsecutiveTapsStepPartitioner.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop.planner.rule.partitioner; 22 | 23 | import cascading.flow.hadoop.planner.rule.expression.ConsecutiveTapsPartitionExpression; 24 | import cascading.flow.planner.rule.partitioner.ExpressionRulePartitioner; 25 | 26 | import static cascading.flow.planner.rule.PlanPhase.PartitionSteps; 27 | 28 | /** 29 | * 30 | */ 31 | public class ConsecutiveTapsStepPartitioner extends ExpressionRulePartitioner 32 | { 33 | public ConsecutiveTapsStepPartitioner() 34 | { 35 | super( 36 | PartitionSteps, 37 | new ConsecutiveTapsPartitionExpression() 38 | ); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /cascading-hadoop3-common/src/main/java/cascading/flow/hadoop/planner/rule/partitioner/GroupTapNodePartitioner.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop.planner.rule.partitioner; 22 | 23 | import cascading.flow.hadoop.planner.rule.expression.GroupTapPartitionExpression; 24 | import cascading.flow.planner.rule.partitioner.ExpressionRulePartitioner; 25 | 26 | import static cascading.flow.planner.rule.PlanPhase.PartitionNodes; 27 | 28 | /** 29 | * 30 | */ 31 | public class GroupTapNodePartitioner extends ExpressionRulePartitioner 32 | { 33 | public GroupTapNodePartitioner() 34 | { 35 | super( 36 | PartitionNodes, 37 | new GroupTapPartitionExpression() 38 | ); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /cascading-hadoop3-common/src/main/java/cascading/flow/hadoop/planner/rule/partitioner/TapGroupTapStepPartitioner.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop.planner.rule.partitioner; 22 | 23 | import cascading.flow.hadoop.planner.rule.expression.TapGroupTapPartitionExpression; 24 | import cascading.flow.planner.rule.partitioner.ExpressionRulePartitioner; 25 | 26 | import static cascading.flow.planner.rule.PlanPhase.PartitionSteps; 27 | 28 | /** 29 | * 30 | */ 31 | public class TapGroupTapStepPartitioner extends ExpressionRulePartitioner 32 | { 33 | public TapGroupTapStepPartitioner() 34 | { 35 | super( 36 | PartitionSteps, 37 | new TapGroupTapPartitionExpression() 38 | ); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /cascading-hadoop3-common/src/main/java/cascading/flow/hadoop/util/ResettableCollection.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop.util; 22 | 23 | /** 24 | * 25 | */ 26 | public interface ResettableCollection 27 | { 28 | public void reset( V value ); 29 | } -------------------------------------------------------------------------------- /cascading-hadoop3-common/src/main/java/cascading/stats/hadoop/HadoopCounterCache.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.stats.hadoop; 22 | 23 | import cascading.stats.CascadingStats; 24 | import cascading.stats.CounterCache; 25 | import org.apache.hadoop.conf.Configuration; 26 | 27 | /** 28 | * 29 | */ 30 | public abstract class HadoopCounterCache extends CounterCache 31 | { 32 | public HadoopCounterCache( CascadingStats stats, Configuration configuration ) 33 | { 34 | super( stats, configuration ); 35 | } 36 | 37 | protected int getIntProperty( String property, int defaultValue ) 38 | { 39 | return configuration.getInt( property, defaultValue ); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /cascading-hadoop3-common/src/main/java/cascading/tuple/hadoop/util/ReverseGroupingSortingComparator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.hadoop.util; 22 | 23 | import cascading.tuple.io.TuplePair; 24 | 25 | /** Class ReverseTuplePairComparator is an implementation of {@link org.apache.hadoop.io.RawComparator}. */ 26 | public class ReverseGroupingSortingComparator extends GroupingSortingComparator 27 | { 28 | @Override 29 | public int compare( byte[] b1, int s1, int l1, byte[] b2, int s2, int l2 ) 30 | { 31 | return -1 * super.compare( b1, s1, l1, b2, s2, l2 ); 32 | } 33 | 34 | @Override 35 | public int compare( TuplePair lhs, TuplePair rhs ) 36 | { 37 | return super.compare( rhs, lhs ); 38 | } 39 | } -------------------------------------------------------------------------------- /cascading-hadoop3-common/src/test/java/cascading/tuple/hadoop/NoTokenTestBytesSerialization.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.hadoop; 22 | 23 | /** 24 | * 25 | */ 26 | public class NoTokenTestBytesSerialization extends BytesSerialization 27 | { 28 | public NoTokenTestBytesSerialization() 29 | { 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /cascading-hadoop3-common/src/test/java/cascading/tuple/hadoop/NoTokenTestSerialization.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.hadoop; 22 | 23 | /** 24 | * 25 | */ 26 | public class NoTokenTestSerialization extends TestSerialization 27 | { 28 | public NoTokenTestSerialization() 29 | { 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /cascading-hadoop3-io/src/main/java/cascading/flow/hadoop/MapRed.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.hadoop; 22 | 23 | import org.apache.hadoop.mapred.Reporter; 24 | 25 | /** 26 | * A helper interface to allow a mapred.* package implementation instances to be exposed for internal use. 27 | */ 28 | public interface MapRed 29 | { 30 | Reporter getReporter(); 31 | } -------------------------------------------------------------------------------- /cascading-hadoop3-io/src/main/java/cascading/tuple/hadoop/io/KeyTupleDeserializer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.hadoop.io; 22 | 23 | import cascading.tuple.hadoop.TupleSerialization; 24 | import cascading.tuple.io.KeyTuple; 25 | 26 | public class KeyTupleDeserializer extends BaseDeserializer 27 | { 28 | 29 | public KeyTupleDeserializer( TupleSerialization.SerializationElementReader elementReader ) 30 | { 31 | super( elementReader ); 32 | 33 | setReaders( elementReader.getTupleSerialization().getKeyFields() ); 34 | } 35 | 36 | @Override 37 | protected KeyTuple createTuple() 38 | { 39 | return new KeyTuple(); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /cascading-hadoop3-io/src/main/java/cascading/tuple/hadoop/io/KeyTupleSerializer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.hadoop.io; 22 | 23 | import cascading.tuple.hadoop.TupleSerialization; 24 | import cascading.tuple.io.KeyTuple; 25 | 26 | public class KeyTupleSerializer extends BaseSerializer 27 | { 28 | public KeyTupleSerializer( TupleSerialization.SerializationElementWriter elementWriter ) 29 | { 30 | super( elementWriter ); 31 | 32 | setWriters( elementWriter.getTupleSerialization().getKeyFields() ); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /cascading-hadoop3-io/src/main/java/cascading/tuple/hadoop/io/TupleSerializer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.hadoop.io; 22 | 23 | import java.io.IOException; 24 | 25 | import cascading.tuple.Tuple; 26 | import cascading.tuple.hadoop.TupleSerialization; 27 | 28 | public class TupleSerializer extends BaseSerializer 29 | { 30 | public TupleSerializer( TupleSerialization.SerializationElementWriter elementWriter ) 31 | { 32 | super( elementWriter ); 33 | } 34 | 35 | public void serialize( Tuple tuple ) throws IOException 36 | { 37 | outputStream.writeTuple( tuple ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /cascading-hadoop3-io/src/main/java/cascading/tuple/hadoop/io/ValueTupleDeserializer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.hadoop.io; 22 | 23 | import cascading.tuple.hadoop.TupleSerialization; 24 | import cascading.tuple.io.ValueTuple; 25 | 26 | public class ValueTupleDeserializer extends BaseDeserializer 27 | { 28 | 29 | public ValueTupleDeserializer( TupleSerialization.SerializationElementReader elementReader ) 30 | { 31 | super( elementReader ); 32 | 33 | setReaders( elementReader.getTupleSerialization().getMaskedValueFields() ); 34 | } 35 | 36 | @Override 37 | protected ValueTuple createTuple() 38 | { 39 | return new ValueTuple(); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /cascading-hadoop3-io/src/main/java/cascading/tuple/hadoop/io/ValueTupleSerializer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.hadoop.io; 22 | 23 | import cascading.tuple.hadoop.TupleSerialization; 24 | import cascading.tuple.io.ValueTuple; 25 | 26 | public class ValueTupleSerializer extends BaseSerializer 27 | { 28 | public ValueTupleSerializer( TupleSerialization.SerializationElementWriter elementWriter ) 29 | { 30 | super( elementWriter ); 31 | 32 | setWriters( elementWriter.getTupleSerialization().getMaskedValueFields() ); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /cascading-hadoop3-mr1/src/main/java/cascading/tuple/hadoop/util/ReverseTupleComparator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.hadoop.util; 22 | 23 | import cascading.tuple.Tuple; 24 | 25 | public class ReverseTupleComparator extends TupleComparator 26 | { 27 | @Override 28 | public int compare( byte[] b1, int s1, int l1, byte[] b2, int s2, int l2 ) 29 | { 30 | return -1 * super.compare( b1, s1, l1, b2, s2, l2 ); 31 | } 32 | 33 | @Override 34 | public int compare( Tuple lhs, Tuple rhs ) 35 | { 36 | return -1 * super.compare( rhs, lhs ); 37 | } 38 | } -------------------------------------------------------------------------------- /cascading-hadoop3-mr1/src/test/resources/cascading/platform/platform.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | # 4 | # Project and contact information: https://cascading.wensel.net/ 5 | # 6 | # This file is part of the Cascading project. 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); 9 | # you may not use this file except in compliance with the License. 10 | # You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software 15 | # distributed under the License is distributed on an "AS IS" BASIS, 16 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | # See the License for the specific language governing permissions and 18 | # limitations under the License. 19 | # 20 | 21 | platform.classname=cascading.platform.hadoop3.Hadoop3MRPlatform 22 | platform.name=hadoop3-mr1 23 | -------------------------------------------------------------------------------- /cascading-hadoop3-parquet/README.md: -------------------------------------------------------------------------------- 1 | # Apache Parquet Support 2 | 3 | The Apache Parquet project deprecated and removed Cascading support. 4 | 5 | This package, `cascading-hadoop2-parquet` and `cascading-hadoop2-parquet-thrift` are imports of the deprecated classes 6 | into the Cascading project. The files imported retain their original Apache Foundation copyright. 7 | 8 | We hope to retain and improve Cascading Parquet support over time. 9 | 10 | The git command `filter-repo` was used to carve out the classes and retain the git commit history from the 11 | original project. -------------------------------------------------------------------------------- /cascading-hadoop3-parquet/merge-parquet.txt: -------------------------------------------------------------------------------- 1 | Git commands to reproduce the import. 2 | --- 3 | git filter-repo --path parquet_cascading.md --path parquet-cascading-common23 --path parquet-cascading --path parquet-cascading3 4 | git filter-repo --use-base-name --path pom.xml --invert-paths 5 | git filter-repo --use-base-name --path .cache --invert-paths 6 | git filter-repo --use-base-name --path REVIEWERS.md --invert-paths 7 | --- 8 | 9 | merge branch parquet-1.11.x into wip-4.1 10 | 11 | This is an import of the deprecated Cascading support in Apache Parquet. 12 | 13 | This merge allows the Cascading community to retain and maintain support 14 | for Parquet. 15 | 16 | All files in this commit retain their original copyright. -------------------------------------------------------------------------------- /cascading-hadoop3-parquet/src/test/resources/names.txt: -------------------------------------------------------------------------------- 1 | Alice Practive 2 | Bob Hope 3 | Charlie Horse 4 | -------------------------------------------------------------------------------- /cascading-hadoop3-parquet/src/test/thrift/test.thrift: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | namespace java org.apache.parquet.thrift.test 21 | 22 | struct Name { 23 | 1: required string first_name, 24 | 2: optional string last_name 25 | } 26 | -------------------------------------------------------------------------------- /cascading-hadoop3-tez-stats/src/main/java/cascading/stats/tez/util/TimelineClient.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.stats.tez.util; 22 | 23 | import java.io.IOException; 24 | import java.util.Iterator; 25 | 26 | import org.apache.tez.dag.api.TezException; 27 | 28 | /** 29 | * This interface can be removed in completion of TEZ-3369 30 | */ 31 | public interface TimelineClient 32 | { 33 | String getVertexID( String vertexName ) throws IOException, TezException; 34 | 35 | Iterator getVertexChildren( String vertexID, int limit, String startTaskID ) throws IOException, TezException; 36 | 37 | TaskStatus getVertexChild( String taskID ) throws TezException; 38 | } -------------------------------------------------------------------------------- /cascading-hadoop3-tez/src/main/java/cascading/flow/tez/planner/rule/transformer/BoundaryElementFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.flow.tez.planner.rule.transformer; 22 | 23 | import cascading.flow.planner.iso.transformer.ElementFactory; 24 | 25 | /** 26 | * 27 | */ 28 | public abstract class BoundaryElementFactory implements ElementFactory 29 | { 30 | public static final String BOUNDARY_PIPE = "cascading.registry.boundary_pipe"; 31 | } 32 | -------------------------------------------------------------------------------- /cascading-hadoop3-tez/src/main/java/cascading/tuple/hadoop/util/ReverseTupleComparator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.tuple.hadoop.util; 22 | 23 | import cascading.tuple.Tuple; 24 | 25 | public class ReverseTupleComparator extends TupleComparator 26 | { 27 | @Override 28 | public int compare( byte[] b1, int s1, int l1, byte[] b2, int s2, int l2 ) 29 | { 30 | return -1 * super.compare( b1, s1, l1, b2, s2, l2 ); 31 | } 32 | 33 | @Override 34 | public int compare( Tuple lhs, Tuple rhs ) 35 | { 36 | return -1 * super.compare( rhs, lhs ); 37 | } 38 | } -------------------------------------------------------------------------------- /cascading-hadoop3-tez/src/test/resources/cascading/platform/platform.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | # 4 | # Project and contact information: https://cascading.wensel.net/ 5 | # 6 | # This file is part of the Cascading project. 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); 9 | # you may not use this file except in compliance with the License. 10 | # You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software 15 | # distributed under the License is distributed on an "AS IS" BASIS, 16 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | # See the License for the specific language governing permissions and 18 | # limitations under the License. 19 | # 20 | 21 | platform.classname=cascading.platform.tez.Hadoop3TezPlatform 22 | platform.name=hadoop3-tez 23 | -------------------------------------------------------------------------------- /cascading-hadoop3-tez/src/test/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | # 4 | # Project and contact information: https://cascading.wensel.net/ 5 | # 6 | # This file is part of the Cascading project. 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); 9 | # you may not use this file except in compliance with the License. 10 | # You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software 15 | # distributed under the License is distributed on an "AS IS" BASIS, 16 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | # See the License for the specific language governing permissions and 18 | # limitations under the License. 19 | # 20 | 21 | # log4j configuration used during build and unit tests 22 | 23 | log4j.rootLogger=info,stdout 24 | log4j.threshhold=ALL 25 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 26 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 27 | log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n 28 | 29 | log4j.logger.cascading=INFO 30 | #log4j.logger.cascading=DEBUG 31 | #log4j.logger.cascading.flow=DEBUG 32 | #log4j.logger.cascading.operation=DEBUG 33 | #log4j.logger.cascading.cascade=DEBUG 34 | 35 | log4j.logger.org.apache.hadoop=WARN 36 | log4j.logger.BlockStateChange=WARN 37 | log4j.logger.SecurityLogger=WARN 38 | log4j.logger.org.mortbay=WARN -------------------------------------------------------------------------------- /cascading-local-neo4j/src/main/java/cascading/local/tap/neo4j/GraphSpec.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.local.tap.neo4j; 22 | 23 | /** 24 | * 25 | */ 26 | public interface GraphSpec 27 | { 28 | } -------------------------------------------------------------------------------- /cascading-local-neo4j/src/main/java/cascading/local/tap/neo4j/JSONUtil.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.local.tap.neo4j; 22 | 23 | import com.fasterxml.jackson.databind.JsonNode; 24 | import heretical.pointer.path.Pointer; 25 | 26 | /** 27 | * 28 | */ 29 | class JSONUtil 30 | { 31 | public static Object at( Pointer pointer, JsonNode n ) 32 | { 33 | JsonNode at = pointer.at( n ); 34 | 35 | if( at.isNumber() ) 36 | return at.numberValue(); 37 | else if( at.isBoolean() ) 38 | return at.booleanValue(); 39 | 40 | return at.asText(); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /cascading-local-splunk/README.md: -------------------------------------------------------------------------------- 1 | # Splunk Tap for Local Mode 2 | 3 | This Tap currently does not have inline junit tests that don't require an external Splunk installation. 4 | 5 | The tests rely on ~/.splunkrc to get all connection info and credentials. -------------------------------------------------------------------------------- /cascading-local-splunk/src/main/java/cascading/local/tap/splunk/SplunkScheme.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.local.tap.splunk; 22 | 23 | /** 24 | * 25 | */ 26 | public interface SplunkScheme 27 | { 28 | } -------------------------------------------------------------------------------- /cascading-local-splunk/src/test/java/com/splunk/ResourceRoot.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package com.splunk; 22 | 23 | /** 24 | * This is a class used solely to get the path to resource like XML and JSON 25 | * files in the test suite in static methods of other classes. 26 | */ 27 | class ResourceRoot 28 | { 29 | } 30 | -------------------------------------------------------------------------------- /cascading-local/src/test/resources/cascading/platform/platform.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | # 4 | # Project and contact information: https://cascading.wensel.net/ 5 | # 6 | # This file is part of the Cascading project. 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); 9 | # you may not use this file except in compliance with the License. 10 | # You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software 15 | # distributed under the License is distributed on an "AS IS" BASIS, 16 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | # See the License for the specific language governing permissions and 18 | # limitations under the License. 19 | # 20 | 21 | platform.classname=cascading.platform.local.LocalPlatform 22 | platform.name=local 23 | -------------------------------------------------------------------------------- /cascading-nested-json/src/main/java/cascading/nested/json/filter/JSONBooleanPointerFilter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.nested.json.filter; 22 | 23 | import heretical.pointer.path.Pointer; 24 | 25 | /** 26 | * Class JSONBooleanPointerFilter filters on a boolean value. 27 | */ 28 | public class JSONBooleanPointerFilter extends heretical.pointer.operation.json.filter.JSONBooleanPointerFilter 29 | { 30 | public JSONBooleanPointerFilter( String pointer, boolean value ) 31 | { 32 | super( pointer, value ); 33 | } 34 | 35 | public JSONBooleanPointerFilter( Pointer pointer, boolean value ) 36 | { 37 | super( pointer, value ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /cascading-nested-json/src/main/java/cascading/nested/json/transform/JSONPrimitiveTransforms.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.nested.json.transform; 22 | 23 | /** 24 | * Interface JSONPrimitiveTransforms provides a set of convenience {@link Transform} helpers. 25 | */ 26 | public interface JSONPrimitiveTransforms extends heretical.pointer.path.json.JSONPrimitiveTransforms 27 | { 28 | } 29 | -------------------------------------------------------------------------------- /cascading-nested/build.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | dependencies { 22 | api project( ':cascading-core' ) 23 | 24 | api group: 'io.heretical', name: 'pointer-path-core', version: '1.1.0' 25 | 26 | compileOnly group: 'org.slf4j', name: 'slf4j-api', version: '1.7.36' 27 | 28 | testImplementation( resolveTests( project( ':cascading-core' ) ) ) 29 | } 30 | -------------------------------------------------------------------------------- /cascading-nested/src/main/java/cascading/nested/core/Transform.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.nested.core; 22 | 23 | /** 24 | * 25 | */ 26 | public interface Transform extends heretical.pointer.operation.Transform 27 | { 28 | } 29 | -------------------------------------------------------------------------------- /cascading-platform/src/test/java/cascading/detail/AssemblyFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.detail; 22 | 23 | import cascading.pipe.Pipe; 24 | import cascading.tuple.Fields; 25 | 26 | public abstract class AssemblyFactory 27 | { 28 | public abstract Pipe createAssembly( Pipe pipe, Fields argFields, Fields declFields, String fieldValue, Fields selectFields ); 29 | } 30 | -------------------------------------------------------------------------------- /cascading-platform/src/test/java/cascading/detail/EachAssemblyFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.detail; 22 | 23 | import cascading.TestFunction; 24 | import cascading.pipe.Each; 25 | import cascading.pipe.Pipe; 26 | import cascading.tuple.Fields; 27 | import cascading.tuple.Tuple; 28 | 29 | public class EachAssemblyFactory extends AssemblyFactory 30 | { 31 | public Pipe createAssembly( Pipe pipe, Fields argFields, Fields declFields, String fieldValue, Fields selectFields ) 32 | { 33 | return new Each( pipe, argFields, new TestFunction( declFields, new Tuple( fieldValue ) ), selectFields ); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /cascading-platform/src/test/java/cascading/detail/EveryAssemblyFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package cascading.detail; 22 | 23 | import cascading.TestAggregator; 24 | import cascading.pipe.Every; 25 | import cascading.pipe.GroupBy; 26 | import cascading.pipe.Pipe; 27 | import cascading.tuple.Fields; 28 | import cascading.tuple.Tuple; 29 | 30 | public class EveryAssemblyFactory extends AssemblyFactory 31 | { 32 | public Pipe createAssembly( Pipe pipe, Fields argFields, Fields declFields, String fieldValue, Fields selectFields ) 33 | { 34 | pipe = new GroupBy( pipe, Fields.ALL ); 35 | 36 | return new Every( pipe, argFields, new TestAggregator( declFields, new Tuple( fieldValue ) ), selectFields ); 37 | } 38 | } -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/apache-clean.10.txt: -------------------------------------------------------------------------------- 1 | 75.185.76.245,-,-,"01/Sep/2007:00:01:03 +0000","POST /mt-tb.cgi/235 HTTP/1.1",403,174,"-","Opera/9.10 (Windows NT 5.1; U; ru)","-" 2 | 68.46.103.112,-,-,"01/Sep/2007:00:01:17 +0000","POST /mt-tb.cgi/92 HTTP/1.1",403,174,"-","Opera/9.10 (Windows NT 5.1; U; ru)","-" 3 | 76.197.151.0,-,-,"01/Sep/2007:00:02:24 +0000","POST /mt-tb.cgi/274 HTTP/1.1",403,174,"-","Opera/9.10 (Windows NT 5.1; U; ru)","-" 4 | 63.123.238.8,-,-,"01/Sep/2007:00:02:49 +0000","GET /robots.txt HTTP/1.1",200,0,"-","Mozilla/2.0 (compatible; Ask Jeeves/Teoma)","-" 5 | 63.123.238.8,-,-,"01/Sep/2007:00:02:49 +0000","GET / HTTP/1.1",200,34293,"-","Mozilla/2.0 (compatible; Ask Jeeves/Teoma)","-" 6 | 12.215.138.88,-,-,"01/Sep/2007:00:03:31 +0000","POST /archives/000180.html HTTP/1.1",405,315,"http://www.example.org/mt-comments.cgi","Opera/9.10 (Windows NT 5.1; U; ru)","-" 7 | 78.84.186.161,-,-,"01/Sep/2007:00:04:00 +0000","POST /mt-tb.cgi/247 HTTP/1.1",403,174,"-","Opera/9.10 (Windows NT 5.1; U; ru)","-" 8 | 68.102.166.126,-,-,"01/Sep/2007:00:07:51 +0000","POST /archives/000229.html HTTP/1.1",405,315,"http://www.example.org/mt-comments.cgi","Opera/9.10 (Windows NT 5.1; U; ru)","-" 9 | 68.102.166.126,-,-,"01/Sep/2007:00:07:51 +0000","POST /archives/000228.html HTTP/1.1",405,315,"http://www.example.org/mt-comments.cgi","Opera/9.10 (Windows NT 5.1; U; ru)","-" 10 | 122.152.128.48,-,-,"01/Sep/2007:00:10:14 +0000","GET / HTTP/1.1",200,34293,"-","Baiduspider+(+http://www.baidu.com/search/spider_jp.html)","-" -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/apache.10.txt: -------------------------------------------------------------------------------- 1 | 75.185.76.245 - - [01/Sep/2007:00:01:03 +0000] "POST /mt-tb.cgi/235 HTTP/1.1" 403 174 "-" "Opera/9.10 (Windows NT 5.1; U; ru)" "-" 2 | 68.46.103.112 - - [01/Sep/2007:00:01:17 +0000] "POST /mt-tb.cgi/92 HTTP/1.1" 403 174 "-" "Opera/9.10 (Windows NT 5.1; U; ru)" "-" 3 | 76.197.151.0 - - [01/Sep/2007:00:02:24 +0000] "POST /mt-tb.cgi/274 HTTP/1.1" 403 174 "-" "Opera/9.10 (Windows NT 5.1; U; ru)" "-" 4 | 63.123.238.8 - - [01/Sep/2007:00:02:49 +0000] "GET /robots.txt HTTP/1.1" 200 0 "-" "Mozilla/2.0 (compatible; Ask Jeeves/Teoma)" "-" 5 | 63.123.238.8 - - [01/Sep/2007:00:02:49 +0000] "GET / HTTP/1.1" 200 34293 "-" "Mozilla/2.0 (compatible; Ask Jeeves/Teoma)" "-" 6 | 12.215.138.88 - - [01/Sep/2007:00:03:31 +0000] "POST /archives/000180.html HTTP/1.1" 405 315 "http://www.example.org/mt-comments.cgi" "Opera/9.10 (Windows NT 5.1; U; ru)" "-" 7 | 78.84.186.161 - - [01/Sep/2007:00:04:00 +0000] "POST /mt-tb.cgi/247 HTTP/1.1" 403 174 "-" "Opera/9.10 (Windows NT 5.1; U; ru)" "-" 8 | 68.102.166.126 - - [01/Sep/2007:00:07:51 +0000] "POST /archives/000229.html HTTP/1.1" 405 315 "http://www.example.org/mt-comments.cgi" "Opera/9.10 (Windows NT 5.1; U; ru)" "-" 9 | 68.102.166.126 - - [01/Sep/2007:00:07:51 +0000] "POST /archives/000228.html HTTP/1.1" 405 315 "http://www.example.org/mt-comments.cgi" "Opera/9.10 (Windows NT 5.1; U; ru)" "-" 10 | 122.152.128.48 - - [01/Sep/2007:00:10:14 +0000] "GET / HTTP/1.1" 200 34293 "-" "Baiduspider+(+http://www.baidu.com/search/spider_jp.html)" "-" -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/comments+lower.txt: -------------------------------------------------------------------------------- 1 | # inserting comments 2 | # here for testing 3 | 1 a 4 | 2 b 5 | # and here 6 | 3 c 7 | 4 d 8 | 5 e 9 | # and here -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/critics.txt: -------------------------------------------------------------------------------- 1 | LisaRose Lady in the Water 2.5 Snakes on a Plane 3.5 Just My Luck 3.0 Superman Returns 3.5 You, Me and Dupree 2.5 The Night Listener 3.0 2 | GeneSeymour Lady in the Water 3.0 Snakes on a Plane 3.5 Just My Luck 1.5 Superman Returns 5.0 You, Me and Dupree 3.5 The Night Listener 3.0 3 | MichaelPhillips Lady in the Water 2.5 Snakes on a Plane 3.0 Superman Returns 3.5 The Night Listener 4.0 4 | ClaudiaPuig Snakes on a Plane 3.5 Just My Luck 3.0 The Night Listener 4.5 Superman Returns 4.0 You, Me and Dupree 2.5 5 | MickLaSalle Lady in the Water 3.0 Snakes on a Plane 4.0 Just My Luck 2.0 Superman Returns 3.0 The Night Listener 3.0 You, Me and Dupree 2.0 6 | JackMatthews Lady in the Water 3.0 Snakes on a Plane 4.0 Just My Luck 2.0 Superman Returns 5.0 You, Me and Dupree 3.5 7 | Toby Snakes on a Plane 4.5 You, Me and Dupree 1.0 Superman Returns 4.0 8 | -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/delimited-extra-field.txt: -------------------------------------------------------------------------------- 1 | foo,bar,baz,bin,1 2 | foo,"bar",baz,bin,2 3 | foo,"bar,bar",baz,bin,3 4 | foo,"bar"",bar",baz,bin,4 5 | foo,"bar"""",bar",baz,bin,5 6 | ,"",baz,,6 7 | ,,,,7,extra-data 8 | foo,,,,8 9 | ,"",,,9 10 | "f",,,,"10" 11 | "f",,,",bin","11" 12 | "f",,,"bin,","11" 13 | -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/delimited-header.txt: -------------------------------------------------------------------------------- 1 | "first","second","third","fourth","fifth" 2 | foo,bar,baz,bin,1 3 | foo,"bar",baz,bin,2 4 | foo,"bar,bar",baz,bin,3 5 | foo,"bar"",bar",baz,bin,4 6 | foo,"bar"""",bar",baz,bin,5 7 | ,"",baz,,6 8 | ,,,,7 9 | foo,,,,8 10 | ,"",,,9 11 | "f",,,,"10" 12 | "f",,,",bin","11" 13 | "f",,,",bin", 14 | "f",,,, 15 | -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/delimited-problematic.txt: -------------------------------------------------------------------------------- 1 | 1,a 2 | 2 -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/delimited-spec-char.txt: -------------------------------------------------------------------------------- 1 | foo|bar|baz|bin|1 2 | foo|"bar"|baz|bin|2 3 | foo|"bar|bar"|baz|bin|3 4 | foo|"bar""|bar"|baz|bin|4 5 | foo|"bar""""|bar"|baz|bin|5 6 | |""|baz||6 7 | ||||7 8 | foo||||8 9 | |""|||9 10 | "f"||||"10" 11 | "f"|||",bin"|"11" 12 | "f"|||"bin,"|"11" -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/delimited.txt: -------------------------------------------------------------------------------- 1 | foo,bar,baz,bin,1 2 | foo,"bar",baz,bin,2 3 | foo,"bar,bar",baz,bin,3 4 | foo,"bar"",bar",baz,bin,4 5 | foo,"bar"""",bar",baz,bin,5 6 | ,"",baz,,6 7 | ,,,,7 8 | foo,,,,8 9 | ,"",,,9 10 | "f",,,,"10" 11 | "f",,,",bin","11" 12 | "f",,,"bin,","11" 13 | -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/extra+lower+upper.txt: -------------------------------------------------------------------------------- 1 | 1 1 a A 2 | 2 2 b B 3 | 3 3 c C 4 | 4 4 d D 5 | 5 5 e E 6 | -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/ips.20.txt: -------------------------------------------------------------------------------- 1 | 75.185.76.245 2 | 68.46.103.112 3 | 76.197.151.0 4 | 63.123.238.8 5 | 63.123.238.8 6 | 12.215.138.88 7 | 78.84.186.161 8 | 190.72.193.209 9 | 68.102.166.126 10 | 122.152.128.48 11 | 70.73.159.105 12 | 69.37.30.35 13 | 58.221.249.34 14 | 66.131.166.131 15 | 72.14.199.11 16 | 72.14.199.11 17 | 72.14.199.11 18 | 209.61.157.78 19 | 71.204.199.171 20 | 82.99.30.66 21 | -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/lhs+rhs-cross-nulls.txt: -------------------------------------------------------------------------------- 1 | 1 a A 2 | 1 a B 3 | 1 a C 4 | 1 b A 5 | 1 b B 6 | 1 b C 7 | 1 c A 8 | 1 c B 9 | 1 c C 10 | 2 b B 11 | 2 b C 12 | b D 13 | 2 c B 14 | 2 c C 15 | 2 c D 16 | 2 d B 17 | 2 d C 18 | 2 d D 19 | 3 c C 20 | 4 b B 21 | 4 b C 22 | 4 b D 23 | 4 c B 24 | 4 c C 25 | c D 26 | 4 d B 27 | 4 d C 28 | 4 d D 29 | 5 a A 30 | 5 a B 31 | 5 a E 32 | 5 b A 33 | b B 34 | 5 b E 35 | 5 e A 36 | 5 e B 37 | 5 e E -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/lhs+rhs-cross-rev.txt: -------------------------------------------------------------------------------- 1 | 5 e E 2 | 5 e B 3 | 5 e A 4 | 5 b E 5 | 5 b B 6 | 5 b A 7 | 5 a E 8 | 5 a B 9 | 5 a A 10 | 4 d D 11 | 4 d C 12 | 4 d B 13 | 4 c D 14 | 4 c C 15 | 4 c B 16 | 4 b D 17 | 4 b C 18 | 4 b B 19 | 3 c C 20 | 2 d D 21 | 2 d C 22 | 2 d B 23 | 2 c D 24 | 2 c C 25 | 2 c B 26 | 2 b D 27 | 2 b C 28 | 2 b B 29 | 1 c C 30 | 1 c B 31 | 1 c A 32 | 1 b C 33 | 1 b B 34 | 1 b A 35 | 1 a C 36 | 1 a B 37 | 1 a A -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/lhs+rhs-cross-x2-var-len.txt: -------------------------------------------------------------------------------- 1 | 1 a A 2 | 1 aa B 3 | 1 aaa C 4 | 1 b A 5 | 1 bb B 6 | 1 bbb C 7 | 1 c A 8 | 1 cc B 9 | 1 ccc C 10 | 2 b B 11 | 2 bb C 12 | 2 bbb D 13 | 2 c B 14 | 2 cc C 15 | 2 ccc D 16 | 2 d B 17 | 2 dd C 18 | 2 ddd D 19 | 3 c C 20 | 4 b B 21 | 4 bb C 22 | 4 bbb D 23 | 4 c B 24 | 4 cc C 25 | 4 ccc D 26 | 4 d B 27 | 4 dd C 28 | 4 ddd D 29 | 5 a A 30 | 5 aa B 31 | 5 aaa E 32 | 5 b A 33 | 5 bb B 34 | 5 bbb E 35 | 5 e A 36 | 5 ee B 37 | 5 eee E 38 | 1 a A 39 | 1 aa B 40 | 1 aaa C 41 | 1 b A 42 | 1 bb B 43 | 1 bbb C 44 | 1 c A 45 | 1 cc B 46 | 1 ccc C 47 | 2 b B 48 | 2 bb C 49 | 2 bbb D 50 | 2 c B 51 | 2 cc C 52 | 2 ccc D 53 | 2 d B 54 | 2 dd C 55 | 2 ddd D 56 | 3 c C 57 | 4 b B 58 | 4 bb C 59 | 4 bbb D 60 | 4 c B 61 | 4 cc C 62 | 4 ccc D 63 | 4 d B 64 | 4 dd C 65 | 4 ddd D 66 | 5 a A 67 | 5 aa B 68 | 5 aaa E 69 | 5 b A 70 | 5 bb B 71 | 5 bbb E 72 | 5 e A 73 | 5 ee B 74 | 5 eee E -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/lhs+rhs-cross-x2.txt: -------------------------------------------------------------------------------- 1 | 1 a A 2 | 1 a B 3 | 1 a C 4 | 1 b A 5 | 1 b B 6 | 1 b C 7 | 1 c A 8 | 1 c B 9 | 1 c C 10 | 2 b B 11 | 2 b C 12 | 2 b D 13 | 2 c B 14 | 2 c C 15 | 2 c D 16 | 2 d B 17 | 2 d C 18 | 2 d D 19 | 3 c C 20 | 4 b B 21 | 4 b C 22 | 4 b D 23 | 4 c B 24 | 4 c C 25 | 4 c D 26 | 4 d B 27 | 4 d C 28 | 4 d D 29 | 5 a A 30 | 5 a B 31 | 5 a E 32 | 5 b A 33 | 5 b B 34 | 5 b E 35 | 5 e A 36 | 5 e B 37 | 5 e E 38 | 1 a A 39 | 1 a B 40 | 1 a C 41 | 1 b A 42 | 1 b B 43 | 1 b C 44 | 1 c A 45 | 1 c B 46 | 1 c C 47 | 2 b B 48 | 2 b C 49 | 2 b D 50 | 2 c B 51 | 2 c C 52 | 2 c D 53 | 2 d B 54 | 2 d C 55 | 2 d D 56 | 3 c C 57 | 4 b B 58 | 4 b C 59 | 4 b D 60 | 4 c B 61 | 4 c C 62 | 4 c D 63 | 4 d B 64 | 4 d C 65 | 4 d D 66 | 5 a A 67 | 5 a B 68 | 5 a E 69 | 5 b A 70 | 5 b B 71 | 5 b E 72 | 5 e A 73 | 5 e B 74 | 5 e E -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/lhs+rhs-cross.txt: -------------------------------------------------------------------------------- 1 | 1 a A 2 | 1 a B 3 | 1 a C 4 | 1 b A 5 | 1 b B 6 | 1 b C 7 | 1 c A 8 | 1 c B 9 | 1 c C 10 | 2 b B 11 | 2 b C 12 | 2 b D 13 | 2 c B 14 | 2 c C 15 | 2 c D 16 | 2 d B 17 | 2 d C 18 | 2 d D 19 | 3 c C 20 | 4 b B 21 | 4 b C 22 | 4 b D 23 | 4 c B 24 | 4 c C 25 | 4 c D 26 | 4 d B 27 | 4 d C 28 | 4 d D 29 | 5 a A 30 | 5 a B 31 | 5 a E 32 | 5 b A 33 | 5 b B 34 | 5 b E 35 | 5 e A 36 | 5 e B 37 | 5 e E -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/lhs-sparse.txt: -------------------------------------------------------------------------------- 1 | 1 a1 2 | 1 a2 3 | 1 a3 4 | 2 b1 5 | 3 c1 6 | 4 d1 7 | 4 d2 8 | 4 d3 9 | 5 e1 10 | 5 e2 11 | 5 e3 12 | 7 g1 13 | 7 g2 14 | 7 g3 15 | 7 g4 16 | 7 g5 17 | h1 -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/lhs.txt: -------------------------------------------------------------------------------- 1 | 1 a 2 | 1 b 3 | 1 c 4 | 2 b 5 | 2 c 6 | 2 d 7 | 3 c 8 | 4 b 9 | 4 c 10 | 4 d 11 | 5 a 12 | 5 b 13 | 5 e 14 | -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/lower+upper.txt: -------------------------------------------------------------------------------- 1 | 1 a A 2 | 2 b B 3 | 3 c C 4 | 4 d D 5 | 5 e E 6 | -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/lower-offset.txt: -------------------------------------------------------------------------------- 1 | 1 a 2 | 5 b 3 | 6 c 4 | 5 e -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/lower.txt: -------------------------------------------------------------------------------- 1 | 1 a 2 | 2 b 3 | 3 c 4 | 4 d 5 | 5 e -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/nums.10.txt: -------------------------------------------------------------------------------- 1 | 1 2 | 2 3 | 3 4 | 4 5 | 5 6 | 6 7 | 7 8 | 8 9 | 9 10 | 10 -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/nums.20.txt: -------------------------------------------------------------------------------- 1 | 1 2 | 2 3 | 3 4 | 4 5 | 5 6 | 6 7 | 7 8 | 8 9 | 9 10 | 10 11 | 11 12 | 12 13 | 13 14 | 14 15 | 15 16 | 16 17 | 17 18 | 18 19 | 19 20 | 20 21 | -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/rhs-sparse.txt: -------------------------------------------------------------------------------- 1 | 1 A1 2 | 1 A2 3 | 1 A3 4 | 2 B1 5 | 2 B2 6 | 2 B3 7 | 4 D1 8 | 6 F1 9 | 6 F2 10 | H1 -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/rhs.txt: -------------------------------------------------------------------------------- 1 | 1 A 2 | 1 B 3 | 1 C 4 | 2 B 5 | 2 C 6 | 2 D 7 | 3 C 8 | 4 B 9 | 4 C 10 | 4 D 11 | 5 A 12 | 5 B 13 | 5 E -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/test-classpath.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwensel/cascading/e782648e4a4f75cafedf43d3316a909b7246823d/cascading-platform/src/test/resources/data/test-classpath.jar -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/unexpectedEndOfFile.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwensel/cascading/e782648e4a4f75cafedf43d3316a909b7246823d/cascading-platform/src/test/resources/data/unexpectedEndOfFile.gz -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/data/upper.txt: -------------------------------------------------------------------------------- 1 | 1 A 2 | 2 B 3 | 3 C 4 | 4 D 5 | 5 E -------------------------------------------------------------------------------- /cascading-platform/src/test/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | # 4 | # Project and contact information: https://cascading.wensel.net/ 5 | # 6 | # This file is part of the Cascading project. 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); 9 | # you may not use this file except in compliance with the License. 10 | # You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software 15 | # distributed under the License is distributed on an "AS IS" BASIS, 16 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | # See the License for the specific language governing permissions and 18 | # limitations under the License. 19 | # 20 | 21 | # log4j configuration used during build and unit tests 22 | 23 | log4j.rootLogger=info,stdout 24 | log4j.threshhold=ALL 25 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 26 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 27 | log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n 28 | 29 | log4j.logger.cascading=INFO 30 | #log4j.logger.cascading=DEBUG 31 | #log4j.logger.cascading.flow=DEBUG 32 | #log4j.logger.cascading.operation=DEBUG 33 | #log4j.logger.cascading.cascade=DEBUG 34 | -------------------------------------------------------------------------------- /etc/synchronizer.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | # 4 | # Project and contact information: https://cascading.wensel.net/ 5 | # 6 | # This file is part of the Cascading project. 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); 9 | # you may not use this file except in compliance with the License. 10 | # You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software 15 | # distributed under the License is distributed on an "AS IS" BASIS, 16 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | # See the License for the specific language governing permissions and 18 | # limitations under the License. 19 | # 20 | 21 | # see http://jets3t.s3.amazonaws.com/toolkit/configuration.html 22 | 23 | #s3service.default-bucket-location=Tokyo 24 | # httpclient.max-connections=2 25 | # threaded-service.admin-max-thread-count=5 26 | 27 | ### 28 | # File/Object comparison properties 29 | ### 30 | 31 | filecomparer.skip-symlinks=true 32 | #filecomparer.use-md5-files=true 33 | #filecomparer.generate-md5-files=true 34 | #filecomparer.md5-files-root-dir=.cache 35 | filecomparer.skip-upload-of-md5-files=true 36 | filecomparer.assume-local-latest-in-mismatch=false 37 | 38 | # Page Caching - none 39 | upload.metadata.Cache-Control=no-cache 40 | 41 | upload.transformed-files-batch-size=1000 42 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cwensel/cascading/e782648e4a4f75cafedf43d3316a909b7246823d/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | # 4 | # Project and contact information: https://cascading.wensel.net/ 5 | # 6 | # This file is part of the Cascading project. 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); 9 | # you may not use this file except in compliance with the License. 10 | # You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software 15 | # distributed under the License is distributed on an "AS IS" BASIS, 16 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | # See the License for the specific language governing permissions and 18 | # limitations under the License. 19 | # 20 | 21 | distributionBase=GRADLE_USER_HOME 22 | distributionPath=wrapper/dists 23 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip 24 | zipStoreBase=GRADLE_USER_HOME 25 | zipStorePath=wrapper/dists 26 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. 3 | * 4 | * Project and contact information: https://cascading.wensel.net/ 5 | * 6 | * This file is part of the Cascading project. 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | include 'cascading-core' 22 | include 'cascading-expression' 23 | include 'cascading-nested' 24 | include 'cascading-nested-json' 25 | include 'cascading-local' 26 | include 'cascading-hadoop3-common' 27 | include 'cascading-hadoop3-io' 28 | include 'cascading-hadoop3-mr1' 29 | include 'cascading-hadoop3-tez' 30 | include 'cascading-hadoop3-tez-stats' 31 | include 'cascading-local-hadoop3-io' 32 | include 'cascading-local-s3' 33 | include 'cascading-local-kafka' 34 | include 'cascading-local-splunk' 35 | include 'cascading-local-neo4j' 36 | include 'cascading-hadoop3-parquet' 37 | include 'cascading-hadoop3-parquet-thrift' 38 | include 'cascading-platform' 39 | 40 | rootProject.name = 'cascading' 41 | -------------------------------------------------------------------------------- /version.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2007-2024 The Cascading Authors. All Rights Reserved. 3 | # 4 | # Project and contact information: https://cascading.wensel.net/ 5 | # 6 | # This file is part of the Cascading project. 7 | # 8 | # Licensed under the Apache License, Version 2.0 (the "License"); 9 | # you may not use this file except in compliance with the License. 10 | # You may obtain a copy of the License at 11 | # 12 | # http://www.apache.org/licenses/LICENSE-2.0 13 | # 14 | # Unless required by applicable law or agreed to in writing, software 15 | # distributed under the License is distributed on an "AS IS" BASIS, 16 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | # See the License for the specific language governing permissions and 18 | # limitations under the License. 19 | # 20 | 21 | cascading.release.major=4.6 22 | cascading.release.minor=0 23 | --------------------------------------------------------------------------------