Removed jOOQ-tools and jOOQ-website from public repository
@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="src" path="xtend-gen"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/jOOQ"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
2
jOOQ-tools/.gitignore
vendored
@ -1,2 +0,0 @@
|
||||
/xtend-gen
|
||||
/bin
|
||||
@ -1,40 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>jOOQ-tools</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.xtend.shared.ui.xtendBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.pde.PluginNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
|
||||
<nature>org.eclipse.xtend.shared.ui.xtendXPandNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@ -1,5 +0,0 @@
|
||||
eclipse.preferences.version=1
|
||||
encoding//src/main/java=UTF-8
|
||||
encoding//src/main/resources=UTF-8
|
||||
encoding//src/test/java=UTF-8
|
||||
encoding/<project>=UTF-8
|
||||
@ -1,2 +0,0 @@
|
||||
eclipse.preferences.version=1
|
||||
line.separator=\n
|
||||
@ -1,382 +0,0 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
|
||||
org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
|
||||
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
|
||||
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
|
||||
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=1.6
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
org.eclipse.jdt.core.compiler.doc.comment.support=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
|
||||
org.eclipse.jdt.core.compiler.problem.deadCode=warning
|
||||
org.eclipse.jdt.core.compiler.problem.deprecation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
|
||||
org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
|
||||
org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
|
||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
|
||||
org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
|
||||
org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
|
||||
org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
|
||||
org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
|
||||
org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=all_standard_tags
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
|
||||
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
|
||||
org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
|
||||
org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
|
||||
org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
|
||||
org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
|
||||
org.eclipse.jdt.core.compiler.problem.nullReference=error
|
||||
org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
|
||||
org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
|
||||
org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
|
||||
org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
|
||||
org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
|
||||
org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
|
||||
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
|
||||
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unclosedCloseable=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedImport=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
|
||||
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
|
||||
org.eclipse.jdt.core.compiler.source=1.6
|
||||
org.eclipse.jdt.core.formatter.align_type_members_on_columns=true
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
|
||||
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=49
|
||||
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
|
||||
org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_after_package=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_field=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_method=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_package=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
|
||||
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_block_comments=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_header=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_html=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_line_comments=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_source_code=true
|
||||
org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
|
||||
org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
|
||||
org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
|
||||
org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
|
||||
org.eclipse.jdt.core.formatter.comment.line_length=80
|
||||
org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
|
||||
org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
|
||||
org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
|
||||
org.eclipse.jdt.core.formatter.compact_else_if=true
|
||||
org.eclipse.jdt.core.formatter.continuation_indentation=1
|
||||
org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1
|
||||
org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
|
||||
org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
|
||||
org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
|
||||
org.eclipse.jdt.core.formatter.indent_empty_lines=false
|
||||
org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
|
||||
org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
|
||||
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
|
||||
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
|
||||
org.eclipse.jdt.core.formatter.indentation.size=4
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.join_lines_in_comments=true
|
||||
org.eclipse.jdt.core.formatter.join_wrapped_lines=true
|
||||
org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.lineSplit=120
|
||||
org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
|
||||
org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
|
||||
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
|
||||
org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
|
||||
org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
|
||||
org.eclipse.jdt.core.formatter.tabulation.char=space
|
||||
org.eclipse.jdt.core.formatter.tabulation.size=4
|
||||
org.eclipse.jdt.core.formatter.use_on_off_tags=false
|
||||
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
|
||||
org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
|
||||
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
|
||||
@ -1,4 +0,0 @@
|
||||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
resolveWorkspaceProjects=true
|
||||
version=1
|
||||
@ -1,8 +0,0 @@
|
||||
#Sun Apr 10 10:03:42 CEST 2011
|
||||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
fullBuildGoals=process-test-resources
|
||||
resolveWorkspaceProjects=true
|
||||
resourceFilterGoals=process-resources resources\:testResources
|
||||
skipCompilerPlugin=true
|
||||
version=1
|
||||
@ -1,38 +0,0 @@
|
||||
Copyright (c) 2009-2013, Data Geekery GmbH (http://www.datageekery.com)
|
||||
All rights reserved.
|
||||
|
||||
This work is dual-licensed
|
||||
- under the Apache Software License 2.0 (the "ASL")
|
||||
- under the jOOQ License and Maintenance Agreement (the "jOOQ License")
|
||||
=============================================================================
|
||||
You may choose which license applies to you:
|
||||
|
||||
- If you're using this work with Open Source databases, you may choose
|
||||
either ASL or jOOQ License.
|
||||
- If you're using this work with at least one commercial database, you must
|
||||
choose jOOQ License
|
||||
|
||||
For more information, please visit http://www.jooq.org/licenses
|
||||
|
||||
Apache Software License 2.0:
|
||||
-----------------------------------------------------------------------------
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
jOOQ License and Maintenance Agreement:
|
||||
-----------------------------------------------------------------------------
|
||||
Data Geekery grants the Customer the non-exclusive, timely limited and
|
||||
non-transferable license to install and use the Software under the terms of
|
||||
the jOOQ License and Maintenance Agreement.
|
||||
|
||||
This library is distributed with a LIMITED WARRANTY. See the jOOQ License
|
||||
and Maintenance Agreement for more details: http://www.jooq.org/licensing
|
||||
@ -1,10 +0,0 @@
|
||||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Xtend Tutorial
|
||||
Bundle-SymbolicName: jOOQ-tools
|
||||
Bundle-Version: 2.3.0.qualifier
|
||||
Bundle-Vendor: Eclipse Tools Project
|
||||
Require-Bundle: org.eclipse.xtext.xbase.lib;bundle-version="2.3.0",
|
||||
org.eclipse.xtend.lib;bundle-version="2.3.0",
|
||||
org.junit4
|
||||
Bundle-RequiredExecutionEnvironment: J2SE-1.5
|
||||
@ -1,5 +0,0 @@
|
||||
source.. = src/,\
|
||||
xtend-gen/
|
||||
output.. = bin/
|
||||
bin.includes = META-INF/,\
|
||||
.
|
||||
@ -1,763 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) 2009-2013, Data Geekery GmbH (http://www.datageekery.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This work is dual-licensed
|
||||
* - under the Apache Software License 2.0 (the "ASL")
|
||||
* - under the jOOQ License and Maintenance Agreement (the "jOOQ License")
|
||||
* =============================================================================
|
||||
* You may choose which license applies to you:
|
||||
*
|
||||
* - If you're using this work with Open Source databases, you may choose
|
||||
* either ASL or jOOQ License.
|
||||
* - If you're using this work with at least one commercial database, you must
|
||||
* choose jOOQ License
|
||||
*
|
||||
* For more information, please visit http://www.jooq.org/licenses
|
||||
*
|
||||
* Apache Software License 2.0:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* jOOQ License and Maintenance Agreement:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Data Geekery grants the Customer the non-exclusive, timely limited and
|
||||
* non-transferable license to install and use the Software under the terms of
|
||||
* the jOOQ License and Maintenance Agreement.
|
||||
*
|
||||
* This library is distributed with a LIMITED WARRANTY. See the jOOQ License
|
||||
* and Maintenance Agreement for more details: http://www.jooq.org/licensing
|
||||
*/
|
||||
package org.jooq.api.rr;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import org.jooq.api.annotation.State;
|
||||
import org.jooq.api.annotation.Transition;
|
||||
import org.jooq.impl.DSL;
|
||||
import org.jooq.tools.StringUtils;
|
||||
|
||||
|
||||
/**
|
||||
* A parser for <code>org.jooq.api.annotation</code> annotations, generating a
|
||||
* BNF notation of the jOOQ API.
|
||||
*
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
public class BNFGenerator {
|
||||
|
||||
static Map<String, Set<Edge>> edgesFrom = new LinkedHashMap<String, Set<Edge>>();
|
||||
static Map<String, Set<Edge>> edgesTo = new LinkedHashMap<String, Set<Edge>>();
|
||||
static Map<Path, Set<Edge>> edges = new LinkedHashMap<Path, Set<Edge>>();
|
||||
static Set<Class<?>> visited = new LinkedHashSet<Class<?>>();
|
||||
static Set<String> terminals = new LinkedHashSet<String>();
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
resolve(DSL.class);
|
||||
resolveStates();
|
||||
|
||||
grammar("before substituting");
|
||||
substitute();
|
||||
grammar("after substituting");
|
||||
|
||||
System.out.println();
|
||||
System.out.println();
|
||||
|
||||
for (String terminal : terminals) {
|
||||
if (!edgesTo.containsKey(terminal)) {
|
||||
System.err.println("Terminal is not contained in grammar: " + terminal);
|
||||
}
|
||||
}
|
||||
|
||||
for (String name : edgesTo.keySet()) {
|
||||
if (!terminals.contains(name)) {
|
||||
System.err.println("Rule for a non-terminal in grammar: " + name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void grammar(String comment) {
|
||||
System.out.println();
|
||||
System.out.println();
|
||||
System.out.println();
|
||||
|
||||
String s = "Grammar: (" + comment + ")";
|
||||
System.out.println(s);
|
||||
System.out.println(StringUtils.rightPad("", s.length(), "-"));
|
||||
|
||||
for (Entry<String, Set<Edge>> entry : edgesTo.entrySet()) {
|
||||
System.out.println(string(entry.getValue()));
|
||||
}
|
||||
}
|
||||
|
||||
private static String string(Edge... e) {
|
||||
return string(Arrays.asList(e));
|
||||
}
|
||||
|
||||
private static String string(Collection<? extends Edge> e) {
|
||||
return string(e, true);
|
||||
}
|
||||
|
||||
private static String string(Collection<? extends Edge> e, boolean collect) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
String previous = "";
|
||||
String separator = "";
|
||||
|
||||
for (Edge edge : e) {
|
||||
if (!edge.path.to.equals(previous) || !collect) {
|
||||
if (sb.length() > 0) {
|
||||
sb.append(";\n");
|
||||
}
|
||||
|
||||
sb.append(edge.path.to);
|
||||
sb.append(" ::= ");
|
||||
|
||||
previous = edge.path.to;
|
||||
separator = "";
|
||||
}
|
||||
|
||||
sb.append(separator);
|
||||
sb.append(edge);
|
||||
|
||||
separator = " | ";
|
||||
}
|
||||
|
||||
sb.append(";");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
private static void substitute() {
|
||||
// Remove all states that appear exactly once as from and once as to
|
||||
|
||||
pruneLoop:
|
||||
while (true) {
|
||||
|
||||
// Some debugging....
|
||||
String check = "WindowPartitionByStep";
|
||||
Set<Edge> e = edgesTo.get(check);
|
||||
if (e != null) {
|
||||
System.err.println();
|
||||
System.err.println();
|
||||
System.err.println();
|
||||
System.err.println(string(e, false));
|
||||
System.err.println(string(edgesFrom.get(check), false));
|
||||
System.err.println();
|
||||
System.err.println();
|
||||
System.err.println();
|
||||
}
|
||||
|
||||
// Alternatives with equal paths are substituted
|
||||
// A ::= B x | B y; => A ::= B ( x | y );
|
||||
// -----------------------------------------------------------------
|
||||
for (Path path : new ArrayList<Path>(edges.keySet())) {
|
||||
Set<Edge> set = edges.get(path);
|
||||
|
||||
if (set.size() > 1) {
|
||||
List<Edge> list = new ArrayList<Edge>(set);
|
||||
List<Expr> expr = new ArrayList<Expr>();
|
||||
|
||||
for (Edge edge : list) {
|
||||
expr.add(edge.expr);
|
||||
}
|
||||
|
||||
Edge substitute = new Edge(
|
||||
list.get(0).path,
|
||||
new Choice(expr.toArray(new Expr[0]))
|
||||
);
|
||||
|
||||
for (Edge edge : list) {
|
||||
remove(edge);
|
||||
}
|
||||
|
||||
edge(substitute);
|
||||
|
||||
System.out.println();
|
||||
System.out.println("Substituted Choice: ( A ::= B x | B y; => A ::= B ( x | y ); )");
|
||||
System.out.println("--------------------------------------------------------------");
|
||||
System.out.println(string(list, false));
|
||||
System.out.println(" -> ");
|
||||
System.out.println(string(substitute));
|
||||
continue pruneLoop;
|
||||
}
|
||||
}
|
||||
|
||||
// Alternatives with equal expressions are substituted
|
||||
// A ::= X a | Y a; B ::= A b; => A ::= X | Y; B ::= A a b;
|
||||
// -----------------------------------------------------------------
|
||||
factoringLoop:
|
||||
for (String name : new ArrayList<String>(edgesTo.keySet())) {
|
||||
if (terminals.contains(name)) {
|
||||
continue factoringLoop;
|
||||
}
|
||||
|
||||
Set<Edge> set = edgesTo.get(name);
|
||||
Set<Expr> expressions = new HashSet<Expr>();
|
||||
|
||||
if (set.size() > 1) {
|
||||
for (Edge edge : set) {
|
||||
expressions.add(edge.expr);
|
||||
}
|
||||
|
||||
if (expressions.size() == 1) {
|
||||
Expr expr = expressions.iterator().next();
|
||||
|
||||
if (expr.toString().length() > 0) {
|
||||
List<Edge> list = new ArrayList<Edge>(set);
|
||||
List<Edge> before = new ArrayList<Edge>(edgesFrom.get(name));
|
||||
|
||||
for (Edge edge : list) {
|
||||
remove(edge);
|
||||
edge(new Edge(edge.path));
|
||||
}
|
||||
|
||||
for (Edge edge : before) {
|
||||
remove(edge);
|
||||
edge(new Edge(edge.path, new Sequence(expr, edge.expr)));
|
||||
}
|
||||
|
||||
System.out.println();
|
||||
System.out.println("Factored out Expression: ( A ::= X a | Y a; B ::= A b; => A ::= X | Y; B ::= A a b; )");
|
||||
System.out.println("-------------------------------------------------------------------------------------");
|
||||
System.out.println(string(list, false));
|
||||
System.out.println(string(before, false));
|
||||
System.out.println(" -> ");
|
||||
System.out.println(string(edgesTo.get(name), false));
|
||||
System.out.println(string(edgesFrom.get(name), false));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Sequences are substituted (only if B consumed exactly once)
|
||||
// A ::= B x; B ::= C y; => A ::= C y x;
|
||||
// -----------------------------------------------------------------
|
||||
for (int maxSize : new int[] { 1, Integer.MAX_VALUE })
|
||||
substitutionLoop:
|
||||
for (String name : new ArrayList<String>(edgesFrom.keySet())) {
|
||||
if (terminals.contains(name)) {
|
||||
continue substitutionLoop;
|
||||
}
|
||||
|
||||
if (edgesFrom.get(name).size() == 1) {
|
||||
Edge from = edgesFrom.get(name).iterator().next();
|
||||
Set<Edge> set = edgesTo.get(name);
|
||||
|
||||
if (set != null) {
|
||||
if (set.size() > maxSize) {
|
||||
continue substitutionLoop;
|
||||
}
|
||||
|
||||
if (set.size() > 1) {
|
||||
if (!"".equals(from.expr.toString())) {
|
||||
continue substitutionLoop;
|
||||
}
|
||||
else {
|
||||
System.out.println();
|
||||
System.out.println();
|
||||
System.out.println("Substituting multi-sequence");
|
||||
System.out.println(string(from));
|
||||
System.out.println("...");
|
||||
System.out.println(string(set));
|
||||
}
|
||||
}
|
||||
|
||||
List<Edge> list = new ArrayList<Edge>(set);
|
||||
List<Edge> substitutes = new ArrayList<Edge>();
|
||||
|
||||
remove(from);
|
||||
|
||||
for (Edge to : list) {
|
||||
remove(to);
|
||||
|
||||
Edge substitute = new Edge(
|
||||
new Path(to.path.from, from.path.to),
|
||||
new Sequence(to.expr, from.expr)
|
||||
);
|
||||
|
||||
edge(substitute);
|
||||
substitutes.add(substitute);
|
||||
}
|
||||
|
||||
System.out.println();
|
||||
System.out.println("Substituted Sequence: ( A ::= B x; B ::= C y; => A ::= C y x; )");
|
||||
System.out.println("---------------------------------------------------------------");
|
||||
System.out.println(string(list, false));
|
||||
System.out.println(string(from));
|
||||
System.out.println(" -> ");
|
||||
System.out.println(string(substitutes, false));
|
||||
continue pruneLoop;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
break pruneLoop;
|
||||
}
|
||||
}
|
||||
|
||||
private static void resolveStates() {
|
||||
for (Class<?> type : visited) {
|
||||
State state = type.getAnnotation(State.class);
|
||||
|
||||
if (state != null) {
|
||||
String stateName = state.name();
|
||||
if ("".equals(stateName)) {
|
||||
stateName = type.getSimpleName();
|
||||
}
|
||||
|
||||
// Collect terminals and add edges from states to their aliases
|
||||
// -------------------------------------------------------------
|
||||
if (notEmpty(state.aliases())) {
|
||||
for (String alias : state.aliases()) {
|
||||
edge(new Edge(new Path(alias, stateName)));
|
||||
|
||||
if (state.terminal()) {
|
||||
terminals.add(alias);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (state.terminal()) {
|
||||
terminals.add(stateName);
|
||||
}
|
||||
|
||||
// Add edges from states to their super states
|
||||
// -------------------------------------------------------------
|
||||
for (Class<?> superType : type.getInterfaces()) {
|
||||
State superState = superType.getAnnotation(State.class);
|
||||
|
||||
if (superState != null) {
|
||||
String superStateName = superState.name();
|
||||
if ("".equals(superStateName)) {
|
||||
superStateName = superType.getSimpleName();
|
||||
}
|
||||
|
||||
edge(new Edge(new Path(stateName, superStateName)));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean notEmpty(String[] array) {
|
||||
return array != null
|
||||
&& array.length > 0
|
||||
&& array[0] != null
|
||||
&& array[0].length() > 0;
|
||||
}
|
||||
|
||||
private static void resolve(Class<?> type) {
|
||||
if (!visited.contains(type)) {
|
||||
visited.add(type);
|
||||
|
||||
for (Class<?> i : type.getInterfaces()) {
|
||||
resolve(i);
|
||||
}
|
||||
|
||||
resolve(type.getDeclaredMethods());
|
||||
}
|
||||
}
|
||||
|
||||
private static void resolve(Method[] methods) {
|
||||
for (Method method : methods) {
|
||||
Transition transition = method.getAnnotation(Transition.class);
|
||||
|
||||
if (transition != null) {
|
||||
Class<?> declaringClass = method.getDeclaringClass();
|
||||
Class<?> returnType = method.getReturnType();
|
||||
|
||||
// From state
|
||||
// -------------------------------------------------------------
|
||||
String from = transition.from();
|
||||
if ("".equals(from)) {
|
||||
State fromState = declaringClass.getAnnotation(State.class);
|
||||
|
||||
if (fromState == null) {
|
||||
System.err.println("No State defined on " + declaringClass.getName());
|
||||
}
|
||||
else {
|
||||
from = fromState.name();
|
||||
}
|
||||
}
|
||||
|
||||
if ("".equals(from)) {
|
||||
from = declaringClass.getSimpleName();
|
||||
}
|
||||
|
||||
// To state
|
||||
// -------------------------------------------------------------
|
||||
String to = transition.to();
|
||||
if ("".equals(to)) {
|
||||
State toState = returnType.getAnnotation(State.class);
|
||||
|
||||
if (toState == null) {
|
||||
System.err.println("No State defined on " + returnType.getName());
|
||||
}
|
||||
else {
|
||||
to = toState.name();
|
||||
}
|
||||
}
|
||||
|
||||
if ("".equals(to)) {
|
||||
to = returnType.getSimpleName();
|
||||
}
|
||||
|
||||
// Transition name
|
||||
// -------------------------------------------------------------
|
||||
String name = transition.name();
|
||||
if ("".equals(name)) {
|
||||
name = method.getName();
|
||||
}
|
||||
|
||||
// Transition arguments
|
||||
// -------------------------------------------------------------
|
||||
String[] args = transition.args();
|
||||
|
||||
// Calculation
|
||||
// -------------------------------------------------------------
|
||||
edge(new Edge(new Path(from, to), new Args(name, args)));
|
||||
resolve(returnType);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void remove(Edge edge) {
|
||||
remove(edge, edges, edge.path);
|
||||
remove(edge, edgesFrom, edge.path.from);
|
||||
remove(edge, edgesTo, edge.path.to);
|
||||
}
|
||||
|
||||
private static <K> void remove(Edge edge, Map<K, Set<Edge>> map, K key) {
|
||||
Set<Edge> set = map.get(key);
|
||||
|
||||
if (set != null) {
|
||||
set.remove(edge);
|
||||
|
||||
if (set.isEmpty()) {
|
||||
map.remove(key);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void edge(Edge edge) {
|
||||
edge(edge, edges, edge.path);
|
||||
edge(edge, edgesFrom, edge.path.from);
|
||||
edge(edge, edgesTo, edge.path.to);
|
||||
}
|
||||
|
||||
private static <K> void edge(Edge edge, Map<K, Set<Edge>> map, K key) {
|
||||
Set<Edge> set = map.get(key);
|
||||
|
||||
if (set == null) {
|
||||
set = new TreeSet<Edge>();
|
||||
map.put(key, set);
|
||||
}
|
||||
|
||||
set.add(edge);
|
||||
}
|
||||
|
||||
private static class Path implements Comparable<Path> {
|
||||
final String from;
|
||||
final String to;
|
||||
|
||||
Path(String from, String to) {
|
||||
this.from = from;
|
||||
this.to = to;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(Path o) {
|
||||
int result = 0;
|
||||
|
||||
if (to != null) {
|
||||
result = to.compareTo(o.to);
|
||||
if (result != 0)
|
||||
return result;
|
||||
}
|
||||
|
||||
if (from != null) {
|
||||
result = from.compareTo(o.from);
|
||||
if (result != 0)
|
||||
return result;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((from == null) ? 0 : from.hashCode());
|
||||
result = prime * result + ((to == null) ? 0 : to.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
Path other = (Path) obj;
|
||||
if (from == null) {
|
||||
if (other.from != null)
|
||||
return false;
|
||||
} else if (!from.equals(other.from))
|
||||
return false;
|
||||
if (to == null) {
|
||||
if (other.to != null)
|
||||
return false;
|
||||
} else if (!to.equals(other.to))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return from + " -> " + to;
|
||||
}
|
||||
}
|
||||
|
||||
private static class Args extends Expr {
|
||||
final String name;
|
||||
final String[] args;
|
||||
|
||||
Args(String name, String[] args) {
|
||||
this.name = name;
|
||||
this.args = args;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
if (!"".equals(name)) {
|
||||
sb.append("'");
|
||||
sb.append(name);
|
||||
sb.append("'");
|
||||
}
|
||||
|
||||
if (notEmpty(args)) {
|
||||
sb.append(" ");
|
||||
|
||||
String separator = "";
|
||||
for (String arg : args) {
|
||||
sb.append(separator);
|
||||
|
||||
if (arg.endsWith("+")) {
|
||||
String sub = arg.substring(0, arg.length() - 1);
|
||||
sb.append(sub);
|
||||
sb.append(" { ',' ");
|
||||
sb.append(sub);
|
||||
sb.append(" }");
|
||||
}
|
||||
else {
|
||||
sb.append(arg);
|
||||
}
|
||||
|
||||
separator = " ',' ";
|
||||
}
|
||||
}
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
|
||||
private static class Choice extends Expr {
|
||||
final Expr[] expr;
|
||||
|
||||
Choice(Expr... expr) {
|
||||
this.expr = expr;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
boolean optional = false;
|
||||
boolean any = false;
|
||||
|
||||
if (expr.length > 1)
|
||||
sb.append("( ");
|
||||
|
||||
String separator = "";
|
||||
for (Expr e : expr) {
|
||||
String s = e.toString();
|
||||
|
||||
if ("".equals(s)) {
|
||||
optional = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
any = true;
|
||||
|
||||
sb.append(separator);
|
||||
sb.append(e);
|
||||
|
||||
separator = " | ";
|
||||
}
|
||||
|
||||
if (expr.length > 1)
|
||||
sb.append(" )");
|
||||
|
||||
if (optional)
|
||||
sb.append(" ?");
|
||||
|
||||
return any ? sb.toString() : "";
|
||||
}
|
||||
}
|
||||
|
||||
private static class Sequence extends Expr {
|
||||
final Expr[] expr;
|
||||
|
||||
Sequence(Expr... expr) {
|
||||
this.expr = expr;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
String separator = "";
|
||||
for (Expr e : expr) {
|
||||
String s = e.toString();
|
||||
|
||||
if (s.length() > 0) {
|
||||
sb.append(separator);
|
||||
sb.append(e);
|
||||
|
||||
separator = " ";
|
||||
}
|
||||
}
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
|
||||
private static abstract class Expr implements Comparable<Expr> {
|
||||
|
||||
@Override
|
||||
public final int compareTo(Expr o) {
|
||||
return toString().compareTo(o.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final int hashCode() {
|
||||
return toString().hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public final boolean equals(Object obj) {
|
||||
return toString().equals(obj.toString());
|
||||
}
|
||||
}
|
||||
|
||||
private static class Edge implements Comparable<Edge> {
|
||||
|
||||
final Path path;
|
||||
final Expr expr;
|
||||
|
||||
Edge(Path path) {
|
||||
this(path, new Sequence());
|
||||
}
|
||||
|
||||
Edge(Path path, Expr expr) {
|
||||
this.path = path;
|
||||
this.expr = expr;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(Edge o) {
|
||||
int result = 0;
|
||||
|
||||
if (path != null) {
|
||||
result = path.compareTo(o.path);
|
||||
if (result != 0)
|
||||
return result;
|
||||
}
|
||||
|
||||
if (expr != null) {
|
||||
result = expr.compareTo(o.expr);
|
||||
if (result != 0)
|
||||
return result;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((expr == null) ? 0 : expr.hashCode());
|
||||
result = prime * result + ((path == null) ? 0 : path.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
Edge other = (Edge) obj;
|
||||
if (expr == null) {
|
||||
if (other.expr != null)
|
||||
return false;
|
||||
} else if (!expr.equals(other.expr))
|
||||
return false;
|
||||
if (path == null) {
|
||||
if (other.path != null)
|
||||
return false;
|
||||
} else if (!path.equals(other.path))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
String s1 = "";
|
||||
String s2 = "";
|
||||
|
||||
if (path.from != null && !"DSL".equals(path.from)) {
|
||||
s1 = path.from;
|
||||
}
|
||||
|
||||
s2 = expr.toString();
|
||||
|
||||
sb.append(s1);
|
||||
if (!s1.isEmpty() && !s2.isEmpty())
|
||||
sb.append(" ");
|
||||
sb.append(s2);
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,216 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) 2009-2013, Data Geekery GmbH (http://www.datageekery.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This work is dual-licensed
|
||||
* - under the Apache Software License 2.0 (the "ASL")
|
||||
* - under the jOOQ License and Maintenance Agreement (the "jOOQ License")
|
||||
* =============================================================================
|
||||
* You may choose which license applies to you:
|
||||
*
|
||||
* - If you're using this work with Open Source databases, you may choose
|
||||
* either ASL or jOOQ License.
|
||||
* - If you're using this work with at least one commercial database, you must
|
||||
* choose jOOQ License
|
||||
*
|
||||
* For more information, please visit http://www.jooq.org/licenses
|
||||
*
|
||||
* Apache Software License 2.0:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* jOOQ License and Maintenance Agreement:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Data Geekery grants the Customer the non-exclusive, timely limited and
|
||||
* non-transferable license to install and use the Software under the terms of
|
||||
* the jOOQ License and Maintenance Agreement.
|
||||
*
|
||||
* This library is distributed with a LIMITED WARRANTY. See the jOOQ License
|
||||
* and Maintenance Agreement for more details: http://www.jooq.org/licensing
|
||||
*/
|
||||
package org.jooq.docs
|
||||
|
||||
import java.lang.reflect.Method
|
||||
import java.util.EnumSet
|
||||
import org.jooq.Field
|
||||
import org.jooq.QueryPart
|
||||
import org.jooq.SQLDialect
|
||||
import org.jooq.Support
|
||||
import org.jooq.conf.RenderNameStyle
|
||||
import org.jooq.conf.Settings
|
||||
import org.jooq.impl.DSL
|
||||
|
||||
import org.jooq.conf.StatementType
|
||||
import java.sql.Date
|
||||
import java.sql.Timestamp
|
||||
|
||||
class Functions {
|
||||
static Field<Byte> numberB = DSL::fieldByName(typeof(Byte), "number");
|
||||
static Field<Integer> number = DSL::fieldByName(typeof(Integer), "number");
|
||||
static Field<Integer> start = DSL::fieldByName(typeof(Integer), "start");
|
||||
static Field<Integer> length = DSL::fieldByName(typeof(Integer), "length");
|
||||
static Field<String> string = DSL::fieldByName(typeof(String), "string");
|
||||
static Field<String> search = DSL::fieldByName(typeof(String), "search");
|
||||
static Field<String> replace = DSL::fieldByName(typeof(String), "replace");
|
||||
static Field<Date> date = DSL::fieldByName(typeof(Date), "date");
|
||||
static Field<Timestamp> timestamp = DSL::fieldByName(typeof(Timestamp), "timestamp");
|
||||
static Field<String> expression = DSL::fieldByName(typeof(String), "expression");
|
||||
static Field<String> e1 = DSL::fieldByName(typeof(String), "expr1");
|
||||
static Field<String> e2 = DSL::fieldByName(typeof(String), "expr2");
|
||||
static Field<String> e3 = DSL::fieldByName(typeof(String), "expr3");
|
||||
static Field<String> e4 = DSL::fieldByName(typeof(String), "expr4");
|
||||
|
||||
|
||||
|
||||
def static EnumSet<SQLDialect> families() {
|
||||
return families(SQLDialect::values());
|
||||
}
|
||||
|
||||
def static EnumSet<SQLDialect> families(SQLDialect[] dialects) {
|
||||
if (dialects == null || dialects.length == 0)
|
||||
return families;
|
||||
|
||||
val result = EnumSet::noneOf(typeof(SQLDialect));
|
||||
|
||||
for (SQLDialect d : dialects) {
|
||||
if (d != SQLDialect.SQL99)
|
||||
result.add(d.family());
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
def static void main(String[] args) {
|
||||
System::out.println('''
|
||||
<table cellpadding="0" cellspacing="0" border="0">
|
||||
«heading("Math functions")»
|
||||
«expr("Arc sine function", DSL::asin(number), typeof(DSL).getMethod("asin", typeof(Field)))»
|
||||
«expr("Arc cosine function", DSL::acos(number), typeof(DSL).getMethod("acos", typeof(Field)))»
|
||||
«expr("Arc tangent function", DSL::atan(number), typeof(DSL).getMethod("atan", typeof(Field)))»
|
||||
«expr("Arc tangent 2 function", DSL::atan2(number, number), typeof(DSL).getMethod("atan2", typeof(Field), typeof(Field)))»
|
||||
«expr("Sine function", DSL::sin(number), typeof(DSL).getMethod("sin", typeof(Field)))»
|
||||
«expr("Cosine function", DSL::cos(number), typeof(DSL).getMethod("cos", typeof(Field)))»
|
||||
«expr("Tangent function", DSL::tan(number), typeof(DSL).getMethod("tan", typeof(Field)))»
|
||||
«expr("Cotangent function", DSL::cot(number), typeof(DSL).getMethod("cot", typeof(Field)))»
|
||||
«expr("Hyperbolic sine function", DSL::sinh(number), typeof(DSL).getMethod("sinh", typeof(Field)))»
|
||||
«expr("Hyperbolic cosine function", DSL::cosh(number), typeof(DSL).getMethod("cosh", typeof(Field)))»
|
||||
«expr("Hyperbolic tangent function", DSL::tanh(number), typeof(DSL).getMethod("tanh", typeof(Field)))»
|
||||
«expr("Hyperbolic cotangent function", DSL::coth(number), typeof(DSL).getMethod("coth", typeof(Field)))»
|
||||
|
||||
«expr("Absolute function", DSL::abs(number), typeof(DSL).getMethod("abs", typeof(Field)))»
|
||||
«expr("Round function", DSL::round(number, 2), typeof(DSL).getMethod("round", typeof(Field), typeof(int)))»
|
||||
«expr("Trunc function", DSL::trunc(number, 2), typeof(DSL).getMethod("trunc", typeof(Field), typeof(int)))»
|
||||
«expr("Floor function", DSL::floor(number), typeof(DSL).getMethod("floor", typeof(Field)))»
|
||||
«expr("Ceiling function", DSL::ceil(number), typeof(DSL).getMethod("ceil", typeof(Field)))»
|
||||
«expr("Sign function", DSL::sign(number), typeof(DSL).getMethod("sign", typeof(Field)))»
|
||||
|
||||
«expr("Exponential function", DSL::exp(number), typeof(DSL).getMethod("exp", typeof(Field)))»
|
||||
«expr("Ln function", DSL::ln(number), typeof(DSL).getMethod("ln", typeof(Field)))»
|
||||
«expr("Log function", DSL::log(number, 2), typeof(DSL).getMethod("log", typeof(Field), typeof(int)))»
|
||||
«expr("Power function", DSL::power(number, number), typeof(DSL).getMethod("power", typeof(Field), typeof(Field)))»
|
||||
«expr("Square root function", DSL::sqrt(number), typeof(DSL).getMethod("sqrt", typeof(Field)))»
|
||||
|
||||
«expr("Random function", DSL::rand(), typeof(DSL).getMethod("rand"))»
|
||||
«expr("Radians to degrees conversion", DSL::deg(number), typeof(DSL).getMethod("deg", typeof(Field)))»
|
||||
«expr("Degrees to radians conversion", DSL::rad(number), typeof(DSL).getMethod("rad", typeof(Field)))»
|
||||
«expr("Euler constant", DSL::e(), typeof(DSL).getMethod("e"))»
|
||||
«expr("Pi constant", DSL::pi(), typeof(DSL).getMethod("pi"))»
|
||||
|
||||
«heading("Bit functions")»
|
||||
«expr("Bit count function", DSL::bitCount(numberB), typeof(DSL).getMethod("bitCount", typeof(Field)))»
|
||||
«expr("Bit length function", DSL::bitLength(string), typeof(DSL).getMethod("bitLength", typeof(Field)))»
|
||||
«expr("Bit AND operation", DSL::bitAnd(number, number), typeof(DSL).getMethod("bitAnd", typeof(Field), typeof(Field)))»
|
||||
«expr("Bit NAND operation", DSL::bitNand(number, number), typeof(DSL).getMethod("bitNand", typeof(Field), typeof(Field)))»
|
||||
«expr("Bit NOR operation", DSL::bitNor(number, number), typeof(DSL).getMethod("bitNor", typeof(Field), typeof(Field)))»
|
||||
«expr("Bit NOT a value", DSL::bitNot(number), typeof(DSL).getMethod("bitNot", typeof(Field)))»
|
||||
«expr("Bit OR operation", DSL::bitOr(number, number), typeof(DSL).getMethod("bitOr", typeof(Field), typeof(Field)))»
|
||||
«expr("Bit XNOR operation", DSL::bitXNor(number, number), typeof(DSL).getMethod("bitXNor", typeof(Field), typeof(Field)))»
|
||||
«expr("Bit XOR operation", DSL::bitXor(number, number), typeof(DSL).getMethod("bitXor", typeof(Field), typeof(Field)))»
|
||||
«expr("Bitwise left shift", DSL::shl(number, number), typeof(DSL).getMethod("shl", typeof(Field), typeof(Field)))»
|
||||
«expr("Bitwise right shift", DSL::shr(number, number), typeof(DSL).getMethod("shr", typeof(Field), typeof(Field)))»
|
||||
|
||||
«heading("String functions")»
|
||||
«expr("Char length function", DSL::charLength(string), typeof(DSL).getMethod("charLength", typeof(Field)))»
|
||||
«expr("Length function", DSL::length(string), typeof(DSL).getMethod("length", typeof(Field)))»
|
||||
«expr("Octet length function", DSL::octetLength(string), typeof(DSL).getMethod("octetLength", typeof(Field)))»
|
||||
«expr("Ascii function", DSL::ascii(string), typeof(DSL).getMethod("ascii", typeof(Field)))»
|
||||
«expr("Concat function", DSL::concat(string, string), typeof(DSL).getMethod("concat", typeof(Field[])))»
|
||||
«expr("Lower function", DSL::lower(string), typeof(DSL).getMethod("lower", typeof(Field)))»
|
||||
«expr("Upper function", DSL::upper(string), typeof(DSL).getMethod("upper", typeof(Field)))»
|
||||
«expr("Lpad function", DSL::lpad(string, number, string), typeof(DSL).getMethod("lpad", typeof(Field), typeof(Field), typeof(Field)))»
|
||||
«expr("Rpad function", DSL::rpad(string, number, string), typeof(DSL).getMethod("rpad", typeof(Field), typeof(Field), typeof(Field)))»
|
||||
«expr("Trim function", DSL::trim(string), typeof(DSL).getMethod("trim", typeof(Field)))»
|
||||
«expr("Ltrim function", DSL::ltrim(string), typeof(DSL).getMethod("ltrim", typeof(Field)))»
|
||||
«expr("Rtrim function", DSL::rtrim(string), typeof(DSL).getMethod("rtrim", typeof(Field)))»
|
||||
«expr("Position function", DSL::position(string, search), typeof(DSL).getMethod("position", typeof(Field), typeof(Field)))»
|
||||
«expr("Repeat function", DSL::repeat(string, number), typeof(DSL).getMethod("repeat", typeof(Field), typeof(Field)))»
|
||||
«expr("Replace function", DSL::replace(string, search, replace), typeof(DSL).getMethod("replace", typeof(Field), typeof(Field), typeof(Field)))»
|
||||
«expr("Substring function", DSL::substring(string, start, length), typeof(DSL).getMethod("substring", typeof(Field), typeof(Field), typeof(Field)))»
|
||||
|
||||
«heading("Date and time functions")»
|
||||
«expr("Date add function", DSL::dateAdd(date, number), typeof(DSL).getMethod("dateAdd", typeof(Field), typeof(Field)))»
|
||||
«expr("Date diff function", DSL::dateDiff(date, date), typeof(DSL).getMethod("dateDiff", typeof(Field), typeof(Field)))»
|
||||
«expr("Timestamp add function", DSL::timestampAdd(timestamp, number), typeof(DSL).getMethod("timestampAdd", typeof(Field), typeof(Field)))»
|
||||
«expr("Timestamp diff function", DSL::timestampDiff(timestamp, timestamp), typeof(DSL).getMethod("timestampDiff", typeof(Field), typeof(Field)))»
|
||||
«expr("Extract the year from a date", DSL::year(date), typeof(DSL).getMethod("year", typeof(Field)))»
|
||||
«expr("Extract the month from a date", DSL::month(date), typeof(DSL).getMethod("month", typeof(Field)))»
|
||||
«expr("Extract the day from a date", DSL::day(date), typeof(DSL).getMethod("day", typeof(Field)))»
|
||||
«expr("Extract the hour from a date", DSL::hour(date), typeof(DSL).getMethod("hour", typeof(Field)))»
|
||||
«expr("Extract the minute from a date", DSL::minute(date), typeof(DSL).getMethod("minute", typeof(Field)))»
|
||||
«expr("Extract the second from a date", DSL::second(date), typeof(DSL).getMethod("second", typeof(Field)))»
|
||||
|
||||
«heading("Other functions")»
|
||||
«expr("Coalesce function", DSL::coalesce(e1, e2), typeof(DSL).getMethod("coalesce", typeof(Field), typeof(Field[])))»
|
||||
«expr("Decode function", DSL::decode(e1, e2, e3, e4), typeof(DSL).getMethod("decode", typeof(Field), typeof(Field), typeof(Field), typeof(Field[])))»
|
||||
«expr("Greatest function", DSL::greatest(e1, e2, e3), typeof(DSL).getMethod("greatest", typeof(Field), typeof(Field[])))»
|
||||
«expr("Least function", DSL::least(e1, e2, e3), typeof(DSL).getMethod("least", typeof(Field), typeof(Field[])))»
|
||||
«expr("Null if function", DSL::nullif(e1, e2), typeof(DSL).getMethod("nullif", typeof(Field), typeof(Field)))»
|
||||
«expr("Nvl function", DSL::nvl(e1, e2), typeof(DSL).getMethod("nvl", typeof(Field), typeof(Field)))»
|
||||
«expr("Nvl2 function", DSL::nvl2(e1, e2, e3), typeof(DSL).getMethod("nvl2", typeof(Field), typeof(Field), typeof(Field)))»
|
||||
</table>
|
||||
''');
|
||||
}
|
||||
|
||||
def static heading(String description) {
|
||||
return '''
|
||||
<tr>
|
||||
<td colspan="16">
|
||||
<h3>«description»<h3>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="description">Function description</td>
|
||||
«FOR d : families»
|
||||
<td class="«d.nameLC»">«d.name»</td>
|
||||
«ENDFOR»
|
||||
</tr>
|
||||
'''
|
||||
}
|
||||
|
||||
def static expr(String description, QueryPart p, Method method) {
|
||||
val support = method.getAnnotation(typeof(Support));
|
||||
return '''
|
||||
<tr>
|
||||
<td class="description">«description»</td>
|
||||
«FOR d : families»
|
||||
<td class="«d.name»">«IF families(support.value).contains(d)»<code><pre>«DSL::using(d, new Settings()
|
||||
.withRenderSchema(false)
|
||||
.withRenderNameStyle(RenderNameStyle.AS_IS)
|
||||
.withStatementType(StatementType.STATIC_STATEMENT)
|
||||
).render(p)»</pre></code>«ELSE» «ENDIF»</td>
|
||||
«ENDFOR»
|
||||
</tr>
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,251 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) 2009-2013, Data Geekery GmbH (http://www.datageekery.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This work is dual-licensed
|
||||
* - under the Apache Software License 2.0 (the "ASL")
|
||||
* - under the jOOQ License and Maintenance Agreement (the "jOOQ License")
|
||||
* =============================================================================
|
||||
* You may choose which license applies to you:
|
||||
*
|
||||
* - If you're using this work with Open Source databases, you may choose
|
||||
* either ASL or jOOQ License.
|
||||
* - If you're using this work with at least one commercial database, you must
|
||||
* choose jOOQ License
|
||||
*
|
||||
* For more information, please visit http://www.jooq.org/licenses
|
||||
*
|
||||
* Apache Software License 2.0:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* jOOQ License and Maintenance Agreement:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Data Geekery grants the Customer the non-exclusive, timely limited and
|
||||
* non-transferable license to install and use the Software under the terms of
|
||||
* the jOOQ License and Maintenance Agreement.
|
||||
*
|
||||
* This library is distributed with a LIMITED WARRANTY. See the jOOQ License
|
||||
* and Maintenance Agreement for more details: http://www.jooq.org/licensing
|
||||
*/
|
||||
package org.jooq.oss
|
||||
|
||||
import static java.util.regex.Pattern.*;
|
||||
|
||||
import java.io.File
|
||||
import java.util.ArrayList
|
||||
import java.util.regex.Pattern
|
||||
import org.apache.commons.lang3.tuple.ImmutablePair
|
||||
import org.jooq.SQLDialect
|
||||
import org.jooq.xtend.Generators
|
||||
import java.util.concurrent.ExecutorService
|
||||
import java.util.concurrent.Executors
|
||||
|
||||
class RemoveProCode {
|
||||
def static void main(String[] args) {
|
||||
Splitter::split("pro", "/../workspace-jooq-oss");
|
||||
}
|
||||
}
|
||||
|
||||
class RemoveTrialCode {
|
||||
def static void main(String[] args) {
|
||||
Splitter::split("trial", "/../workspace-jooq-pro");
|
||||
}
|
||||
}
|
||||
|
||||
class Splitter extends Generators {
|
||||
|
||||
static ExecutorService ex;
|
||||
String token;
|
||||
|
||||
def static void split(String token, String workspace) {
|
||||
ex = Executors::newFixedThreadPool(4);
|
||||
|
||||
val splitter = new Splitter(token);
|
||||
|
||||
val workspaceIn = new File("../..").canonicalFile;
|
||||
val workspaceOut = new File(workspaceIn.canonicalPath + workspace).canonicalFile;
|
||||
|
||||
for (project : workspaceIn.listFiles[f | f.name.startsWith("jOOQ")]) {
|
||||
val in = new File(workspaceIn, project.name);
|
||||
val out = new File(workspaceOut, project.name);
|
||||
splitter.transform(in, out, in);
|
||||
}
|
||||
|
||||
ex.shutdown;
|
||||
}
|
||||
|
||||
def transform(File inRoot, File outRoot, File in) {
|
||||
val out = new File(outRoot.canonicalPath + "/" + in.canonicalPath.replace(inRoot.canonicalPath, ""));
|
||||
|
||||
if (in.directory) {
|
||||
val files = in.listFiles[path |
|
||||
!path.canonicalPath.endsWith(".class")
|
||||
&& !path.canonicalPath.endsWith(".dat")
|
||||
&& !path.canonicalPath.endsWith(".git")
|
||||
&& !path.canonicalPath.endsWith(".jar")
|
||||
&& !path.canonicalPath.endsWith(".pdf")
|
||||
&& !path.canonicalPath.endsWith(".zip")
|
||||
&& !path.canonicalPath.endsWith("._trace")
|
||||
&& !path.canonicalPath.endsWith("jOOQ-tools")
|
||||
&& !path.canonicalPath.endsWith("jOOQ-website")
|
||||
&& !path.canonicalPath.endsWith("jOOQ-websites")
|
||||
&& !path.canonicalPath.endsWith("jOOQ-webservices")
|
||||
&& !path.canonicalPath.contains("\\access")
|
||||
&& !path.canonicalPath.contains("\\ase")
|
||||
&& !path.canonicalPath.contains("\\db2")
|
||||
&& !path.canonicalPath.contains("\\ingres")
|
||||
&& !path.canonicalPath.contains("\\oracle")
|
||||
&& !path.canonicalPath.contains("\\sqlserver")
|
||||
&& !path.canonicalPath.contains("\\sybase")
|
||||
&& !path.canonicalPath.contains("\\target")
|
||||
&& !path.canonicalPath.contains("\\bin")
|
||||
];
|
||||
|
||||
for (file : files) {
|
||||
transform(inRoot, outRoot, file);
|
||||
}
|
||||
}
|
||||
else if (token == "pro" && in.name.equals("LICENSE.txt")) {
|
||||
ex.submit[ |
|
||||
write(out, '''
|
||||
Copyright (c) 2009-2013, Data Geekery GmbH (http://www.datageekery.com)
|
||||
All rights reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
Other licenses:
|
||||
-----------------------------------------------------------------------------
|
||||
Commercial licenses for this work are available. These replace the above
|
||||
ASL 2.0 and offer limited warranties, support, maintenance, and commercial
|
||||
database integrations.
|
||||
|
||||
For more information, please visit: http://www.jooq.org/licenses''');
|
||||
];
|
||||
}
|
||||
else {
|
||||
ex.submit[ |
|
||||
var content = read(in);
|
||||
|
||||
for (pattern : translateAll) {
|
||||
val m = pattern.matcher(content);
|
||||
|
||||
while (m.find) {
|
||||
content = content.substring(0, m.start)
|
||||
+ m.group(1)
|
||||
+ m.group(2).replaceAll("\\S", "x")
|
||||
+ m.group(3)
|
||||
+ content.substring(m.end);
|
||||
}
|
||||
}
|
||||
for (pair : replaceFirst) {
|
||||
content = pair.left.matcher(content).replaceAll(pair.right);
|
||||
}
|
||||
for (pair : replaceAll) {
|
||||
content = pair.left.matcher(content).replaceAll(pair.right);
|
||||
}
|
||||
|
||||
write(out, content);
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
val translateAll = new ArrayList<Pattern>();
|
||||
val replaceAll = new ArrayList<ImmutablePair<Pattern, String>>();
|
||||
val replaceFirst = new ArrayList<ImmutablePair<Pattern, String>>();
|
||||
|
||||
new(String token) {
|
||||
this.token = token;
|
||||
|
||||
if (token == "pro") {
|
||||
|
||||
// Replace a couple of imports
|
||||
replaceFirst.add(new ImmutablePair(compile('''import org\.jooq\.(ArrayConstant|ArrayRecord|impl\.ArrayRecordImpl|impl\.FlashbackTable.*?);'''), "// ..."));
|
||||
replaceFirst.add(new ImmutablePair(compile('''import static org\.jooq\.impl\.DSL\.(cube|grouping|groupingId|groupingSets);'''), "// ..."));
|
||||
|
||||
// Replace the Java / Scala / Xtend license header
|
||||
replaceFirst.add(new ImmutablePair(compile('''(?s:/\*\*[\r\n] \* Copyright.*?eula[\r\n] \*/)'''), '''
|
||||
/**
|
||||
* Copyright (c) 2009-2013, Data Geekery GmbH (http://www.datageekery.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* Other licenses:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Commercial licenses for this work are available. These replace the above
|
||||
* ASL 2.0 and offer limited warranties, support, maintenance, and commercial
|
||||
* database integrations.
|
||||
*
|
||||
* For more information, please visit: http://www.jooq.org/licenses
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*/'''));
|
||||
|
||||
for (d : SQLDialect::values.filter[d | d.commercial]) {
|
||||
|
||||
// Remove commercial dialects from @Support annotations
|
||||
replaceAll.add(new ImmutablePair(compile('''(?s:(\@Support\([^\)]*?),\s*\b«d.name»\b([^\)]*?\)))'''), "$1$2"));
|
||||
replaceAll.add(new ImmutablePair(compile('''(?s:(\@Support\([^\)]*?)\b«d.name»\b,\s*([^\)]*?\)))'''), "$1$2"));
|
||||
replaceAll.add(new ImmutablePair(compile('''(?s:(\@Support\([^\)]*?)\s*\b«d.name»\b\s*([^\)]*?\)))'''), "$1$2"));
|
||||
|
||||
// Remove commercial dialects from Arrays.asList() expressions
|
||||
replaceAll.add(new ImmutablePair(compile('''(asList\([^\)]*?),\s*\b«d.name»\b([^\)]*?\))'''), "$1$2"));
|
||||
replaceAll.add(new ImmutablePair(compile('''(asList\([^\)]*?)\b«d.name»\b,\s*([^\)]*?\))'''), "$1$2"));
|
||||
replaceAll.add(new ImmutablePair(compile('''(asList\([^\)]*?)\s*\b«d.name»\b\s*([^\)]*?\))'''), "$1$2"));
|
||||
|
||||
// Remove commercial dialects from imports
|
||||
replaceAll.add(new ImmutablePair(compile('''import (static )?org\.jooq\.SQLDialect\.«d.name»;'''), "// ..."));
|
||||
replaceAll.add(new ImmutablePair(compile('''import (static )?org\.jooq\.util\.«d.name.toLowerCase»\..*?;'''), "// ..."));
|
||||
}
|
||||
}
|
||||
|
||||
// Remove sections of delimited code
|
||||
translateAll.add(compile('''(?s:(/\* \[«token»\])( \*.*?/\* )(\[/«token»\] \*/))'''));
|
||||
translateAll.add(compile('''(?s:(<!-- \[«token»\])( -->.*?<!-- )(\[/«token»\] -->))'''));
|
||||
}
|
||||
}
|
||||
@ -1,343 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) 2009-2013, Data Geekery GmbH (http://www.datageekery.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This work is dual-licensed
|
||||
* - under the Apache Software License 2.0 (the "ASL")
|
||||
* - under the jOOQ License and Maintenance Agreement (the "jOOQ License")
|
||||
* =============================================================================
|
||||
* You may choose which license applies to you:
|
||||
*
|
||||
* - If you're using this work with Open Source databases, you may choose
|
||||
* either ASL or jOOQ License.
|
||||
* - If you're using this work with at least one commercial database, you must
|
||||
* choose jOOQ License
|
||||
*
|
||||
* For more information, please visit http://www.jooq.org/licenses
|
||||
*
|
||||
* Apache Software License 2.0:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* jOOQ License and Maintenance Agreement:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Data Geekery grants the Customer the non-exclusive, timely limited and
|
||||
* non-transferable license to install and use the Software under the terms of
|
||||
* the jOOQ License and Maintenance Agreement.
|
||||
*
|
||||
* This library is distributed with a LIMITED WARRANTY. See the jOOQ License
|
||||
* and Maintenance Agreement for more details: http://www.jooq.org/licensing
|
||||
*/
|
||||
package org.jooq.xtend
|
||||
|
||||
import org.jooq.Constants
|
||||
|
||||
/**
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
class BetweenAndSteps extends Generators {
|
||||
|
||||
def static void main(String[] args) {
|
||||
val steps = new BetweenAndSteps();
|
||||
steps.generateBetweenAndSteps();
|
||||
steps.generateBetweenAndStepsImpl();
|
||||
}
|
||||
|
||||
def generateBetweenAndSteps() {
|
||||
for (degree : (1..Constants::MAX_ROW_DEGREE)) {
|
||||
val out = new StringBuilder();
|
||||
|
||||
out.append('''
|
||||
«classHeader»
|
||||
package org.jooq;
|
||||
|
||||
import javax.annotation.Generated;
|
||||
|
||||
/**
|
||||
* An intermediate DSL type for the construction of a <code>BETWEEN</code>
|
||||
* predicate.
|
||||
*
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
«generatedAnnotation»
|
||||
public interface BetweenAndStep«degree»<«TN(degree)»> {
|
||||
|
||||
/**
|
||||
* Create a condition to check this field against some bounds
|
||||
*/
|
||||
@Support
|
||||
Condition and(«Field_TN_XXXn(degree, "maxValue")»);
|
||||
|
||||
/**
|
||||
* Create a condition to check this field against some bounds
|
||||
*/
|
||||
@Support
|
||||
Condition and(«TN_XXXn(degree, "maxValue")»);
|
||||
|
||||
/**
|
||||
* Create a condition to check this field against some bounds
|
||||
*/
|
||||
@Support
|
||||
Condition and(Row«degree»<«TN(degree)»> maxValue);
|
||||
|
||||
/**
|
||||
* Create a condition to check this field against some bounds
|
||||
*/
|
||||
@Support
|
||||
Condition and(Record«degree»<«TN(degree)»> maxValue);
|
||||
|
||||
}
|
||||
''');
|
||||
|
||||
write("org.jooq.BetweenAndStep" + degree, out);
|
||||
}
|
||||
}
|
||||
|
||||
def generateBetweenAndStepsImpl() {
|
||||
val out = new StringBuilder();
|
||||
|
||||
out.append('''
|
||||
«classHeader»
|
||||
package org.jooq.impl;
|
||||
|
||||
import static java.util.Arrays.asList;
|
||||
import static org.jooq.Clause.CONDITION;
|
||||
import static org.jooq.Clause.CONDITION_BETWEEN;
|
||||
import static org.jooq.Clause.CONDITION_BETWEEN_SYMMETRIC;
|
||||
import static org.jooq.Clause.CONDITION_NOT_BETWEEN;
|
||||
import static org.jooq.Clause.CONDITION_NOT_BETWEEN_SYMMETRIC;
|
||||
import static org.jooq.SQLDialect.ASE;
|
||||
import static org.jooq.SQLDialect.CUBRID;
|
||||
import static org.jooq.SQLDialect.DB2;
|
||||
import static org.jooq.SQLDialect.DERBY;
|
||||
import static org.jooq.SQLDialect.FIREBIRD;
|
||||
import static org.jooq.SQLDialect.H2;
|
||||
import static org.jooq.SQLDialect.MARIADB;
|
||||
import static org.jooq.SQLDialect.MYSQL;
|
||||
import static org.jooq.SQLDialect.ORACLE;
|
||||
import static org.jooq.SQLDialect.SQLITE;
|
||||
import static org.jooq.SQLDialect.SQLSERVER;
|
||||
import static org.jooq.SQLDialect.SYBASE;
|
||||
import static org.jooq.impl.DSL.row;
|
||||
|
||||
import javax.annotation.Generated;
|
||||
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
import org.jooq.BetweenAndStep«degree»;
|
||||
«ENDFOR»
|
||||
import org.jooq.BetweenAndStepN;
|
||||
import org.jooq.BindContext;
|
||||
import org.jooq.Clause;
|
||||
import org.jooq.Condition;
|
||||
import org.jooq.Configuration;
|
||||
import org.jooq.Context;
|
||||
import org.jooq.Field;
|
||||
import org.jooq.QueryPartInternal;
|
||||
import org.jooq.Record;
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
import org.jooq.Record«degree»;
|
||||
«ENDFOR»
|
||||
import org.jooq.RenderContext;
|
||||
import org.jooq.Row;
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
import org.jooq.Row«degree»;
|
||||
«ENDFOR»
|
||||
import org.jooq.RowN;
|
||||
|
||||
/**
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
«generatedAnnotation»
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
class RowBetweenCondition<«TN(Constants::MAX_ROW_DEGREE)»> extends AbstractCondition
|
||||
implements
|
||||
|
||||
// This BetweenAndStep implementation implements all types. Type-safety is
|
||||
// being checked through the type-safe API. No need for further checks here
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
BetweenAndStep«degree»<«TN(degree)»>,
|
||||
«ENDFOR»
|
||||
BetweenAndStepN {
|
||||
|
||||
private static final long serialVersionUID = -4666251100802237878L;
|
||||
private static final Clause[] CLAUSES_BETWEEN = { CONDITION, CONDITION_BETWEEN };
|
||||
private static final Clause[] CLAUSES_BETWEEN_SYMMETRIC = { CONDITION, CONDITION_BETWEEN_SYMMETRIC };
|
||||
private static final Clause[] CLAUSES_NOT_BETWEEN = { CONDITION, CONDITION_NOT_BETWEEN };
|
||||
private static final Clause[] CLAUSES_NOT_BETWEEN_SYMMETRIC = { CONDITION, CONDITION_NOT_BETWEEN_SYMMETRIC };
|
||||
|
||||
private final boolean symmetric;
|
||||
private final boolean not;
|
||||
private final Row row;
|
||||
private final Row minValue;
|
||||
private Row maxValue;
|
||||
|
||||
RowBetweenCondition(Row row, Row minValue, boolean not, boolean symmetric) {
|
||||
this.row = row;
|
||||
this.minValue = minValue;
|
||||
this.not = not;
|
||||
this.symmetric = symmetric;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// XXX: BetweenAndStep API
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
@Override
|
||||
public final Condition and(Field f) {
|
||||
if (maxValue == null) {
|
||||
return and(row(f));
|
||||
}
|
||||
else {
|
||||
return super.and(f);
|
||||
}
|
||||
}
|
||||
«FOR degree : (2..Constants::MAX_ROW_DEGREE)»
|
||||
|
||||
@Override
|
||||
public final Condition and(«Field_TN_tn(degree)») {
|
||||
return and(row(«tn(degree)»));
|
||||
}
|
||||
«ENDFOR»
|
||||
|
||||
@Override
|
||||
public final Condition and(Field<?>... fields) {
|
||||
return and(row(fields));
|
||||
}
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
|
||||
@Override
|
||||
public final Condition and(«TN_tn(degree)») {
|
||||
return and(row(«tn(degree)»));
|
||||
}
|
||||
«ENDFOR»
|
||||
|
||||
@Override
|
||||
public final Condition and(Object... values) {
|
||||
return and(row(values));
|
||||
}
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
|
||||
@Override
|
||||
public final Condition and(Row«degree»<«TN(degree)»> r) {
|
||||
this.maxValue = r;
|
||||
return this;
|
||||
}
|
||||
«ENDFOR»
|
||||
|
||||
@Override
|
||||
public final Condition and(RowN r) {
|
||||
this.maxValue = r;
|
||||
return this;
|
||||
}
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
|
||||
@Override
|
||||
public final Condition and(Record«degree»<«TN(degree)»> record) {
|
||||
return and(record.valuesRow());
|
||||
}
|
||||
«ENDFOR»
|
||||
|
||||
@Override
|
||||
public final Condition and(Record record) {
|
||||
RowN r = new RowImpl(Utils.fields(record.intoArray(), record.fields()));
|
||||
return and(r);
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// XXX: QueryPart API
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
@Override
|
||||
public final void bind(BindContext context) {
|
||||
delegate(context.configuration()).bind(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void toSQL(RenderContext context) {
|
||||
delegate(context.configuration()).toSQL(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Clause[] clauses(Context<?> ctx) {
|
||||
return delegate(ctx.configuration()).clauses(ctx);
|
||||
}
|
||||
|
||||
private final QueryPartInternal delegate(Configuration configuration) {
|
||||
// These casts are safe for RowImpl
|
||||
RowN r = (RowN) row;
|
||||
RowN min = (RowN) minValue;
|
||||
RowN max = (RowN) maxValue;
|
||||
|
||||
// These dialects don't support the SYMMETRIC keyword at all
|
||||
if (symmetric && asList(ASE, CUBRID, DB2, DERBY, FIREBIRD, H2, MARIADB, MYSQL, ORACLE, SQLITE, SQLSERVER, SYBASE).contains(configuration.dialect().family())) {
|
||||
if (not) {
|
||||
return (QueryPartInternal) r.notBetween(min, max).and(r.notBetween(max, min));
|
||||
}
|
||||
else {
|
||||
return (QueryPartInternal) r.between(min, max).or(r.between(max, min));
|
||||
}
|
||||
}
|
||||
|
||||
// These dialects either don't support row value expressions, or they
|
||||
// Can't handle row value expressions with the BETWEEN predicate
|
||||
else if (row.size() > 1 && asList(CUBRID, DERBY, FIREBIRD, MARIADB, MYSQL, ORACLE, SQLITE, SQLSERVER, SYBASE).contains(configuration.dialect().family())) {
|
||||
Condition result = r.ge(min).and(r.le(max));
|
||||
|
||||
if (not) {
|
||||
result = result.not();
|
||||
}
|
||||
|
||||
return (QueryPartInternal) result;
|
||||
}
|
||||
else {
|
||||
return new Native();
|
||||
}
|
||||
}
|
||||
|
||||
private class Native extends AbstractQueryPart {
|
||||
|
||||
/**
|
||||
* Generated UID
|
||||
*/
|
||||
private static final long serialVersionUID = 2915703568738921575L;
|
||||
|
||||
@Override
|
||||
public final void toSQL(RenderContext context) {
|
||||
context.visit(row);
|
||||
if (not) context.sql(" ").keyword("not");
|
||||
context.sql(" ").keyword("between");
|
||||
if (symmetric) context.sql(" ").keyword("symmetric");
|
||||
context.sql(" ").visit(minValue);
|
||||
context.sql(" ").keyword("and");
|
||||
context.sql(" ").visit(maxValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void bind(BindContext context) {
|
||||
context.visit(row).visit(minValue).visit(maxValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Clause[] clauses(Context<?> ctx) {
|
||||
return not ? symmetric ? CLAUSES_NOT_BETWEEN_SYMMETRIC
|
||||
: CLAUSES_NOT_BETWEEN
|
||||
: symmetric ? CLAUSES_BETWEEN_SYMMETRIC
|
||||
: CLAUSES_BETWEEN;
|
||||
}
|
||||
}
|
||||
}
|
||||
''');
|
||||
|
||||
write("org.jooq.impl.RowBetweenCondition", out);
|
||||
}
|
||||
}
|
||||
@ -1,129 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) 2009-2013, Data Geekery GmbH (http://www.datageekery.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This work is dual-licensed
|
||||
* - under the Apache Software License 2.0 (the "ASL")
|
||||
* - under the jOOQ License and Maintenance Agreement (the "jOOQ License")
|
||||
* =============================================================================
|
||||
* You may choose which license applies to you:
|
||||
*
|
||||
* - If you're using this work with Open Source databases, you may choose
|
||||
* either ASL or jOOQ License.
|
||||
* - If you're using this work with at least one commercial database, you must
|
||||
* choose jOOQ License
|
||||
*
|
||||
* For more information, please visit http://www.jooq.org/licenses
|
||||
*
|
||||
* Apache Software License 2.0:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* jOOQ License and Maintenance Agreement:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Data Geekery grants the Customer the non-exclusive, timely limited and
|
||||
* non-transferable license to install and use the Software under the terms of
|
||||
* the jOOQ License and Maintenance Agreement.
|
||||
*
|
||||
* This library is distributed with a LIMITED WARRANTY. See the jOOQ License
|
||||
* and Maintenance Agreement for more details: http://www.jooq.org/licensing
|
||||
*/
|
||||
package org.jooq.xtend
|
||||
|
||||
import org.jooq.Constants
|
||||
|
||||
/**
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
class Conversions extends Generators {
|
||||
|
||||
def static void main(String[] args) {
|
||||
val conversions = new Conversions();
|
||||
conversions.generateAsTuple();
|
||||
conversions.generateAsMapper();
|
||||
// conversions.generateAsHandler();
|
||||
}
|
||||
|
||||
def generateAsTuple() {
|
||||
val out = new StringBuilder();
|
||||
|
||||
out.append('''
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
|
||||
/**
|
||||
* Enrich any {@link org.jooq.Record«degree»} with the {@link Tuple«degree»} case class
|
||||
*/
|
||||
implicit def asTuple«degree»[«TN(degree)»](r : Record«degree»[«TN(degree)»]): Tuple«degree»[«TN(degree)»] = r match {
|
||||
case null => null
|
||||
case _ => Tuple«degree»(«FOR d : (1..degree) SEPARATOR ', '»r.value«d»«ENDFOR»)
|
||||
}
|
||||
«ENDFOR»
|
||||
''');
|
||||
|
||||
insert("org.jooq.scala.Conversions", out, "tuples");
|
||||
}
|
||||
|
||||
def generateAsMapper() {
|
||||
val out = new StringBuilder();
|
||||
|
||||
out.append('''
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
|
||||
/**
|
||||
* Wrap a Scala <code>Tuple«degree» => E</code> function in a jOOQ <code>RecordMapper</code> type.
|
||||
*/
|
||||
implicit def asMapperFromArgList«degree»[«TN(degree)», E](f: («TN(degree)») => E): RecordMapper[Record«degree»[«TN(degree)»], E] = new RecordMapper[Record«degree»[«TN(degree)»], E] {
|
||||
def map(record: Record«degree»[«TN(degree)»]) = f(«XXXn(degree, "record.value")»)
|
||||
}
|
||||
«ENDFOR»
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
|
||||
/**
|
||||
* Wrap a Scala <code>Tuple«degree» => E</code> function in a jOOQ <code>RecordMapper</code> type.
|
||||
*/
|
||||
implicit def asMapperFromTuple«degree»[«TN(degree)», E](f: Tuple«degree»[«TN(degree)»] => E): RecordMapper[Record«degree»[«TN(degree)»], E] = new RecordMapper[Record«degree»[«TN(degree)»], E] {
|
||||
def map(record: Record«degree»[«TN(degree)»]) = f(Tuple«degree»(«XXXn(degree, "record.value")»))
|
||||
}
|
||||
«ENDFOR»
|
||||
''');
|
||||
|
||||
insert("org.jooq.scala.Conversions", out, "mapper");
|
||||
}
|
||||
|
||||
def generateAsHandler() {
|
||||
val out = new StringBuilder();
|
||||
|
||||
out.append('''
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
|
||||
/**
|
||||
* Wrap a Scala <code>Tuple«degree» => Unit</code> function in a jOOQ <code>RecordHandler</code> type.
|
||||
*/
|
||||
implicit def asHandlerFromArgList«degree»[«TN(degree)»](f: («TN(degree)») => Unit): RecordHandler[Record«degree»[«TN(degree)»]] = new RecordHandler[Record«degree»[«TN(degree)»]] {
|
||||
def next(record: Record«degree»[«TN(degree)»]) = f(«XXXn(degree, "record.value")»)
|
||||
}
|
||||
«ENDFOR»
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
|
||||
/**
|
||||
* Wrap a Scala <code>Tuple«degree» => Unit</code> function in a jOOQ <code>RecordHandler</code> type.
|
||||
*/
|
||||
implicit def asHandlerFromTuple«degree»[«TN(degree)», E](f: Tuple«degree»[«TN(degree)»] => E): RecordHandler[Record«degree»[«TN(degree)»]] = new RecordHandler[Record«degree»[«TN(degree)»]] {
|
||||
def next(record: Record«degree»[«TN(degree)»]) = f(Tuple«degree»(«XXXn(degree, "record.value")»))
|
||||
}
|
||||
«ENDFOR»
|
||||
''');
|
||||
|
||||
insert("org.jooq.scala.Conversions", out, "handler");
|
||||
}
|
||||
}
|
||||
@ -1,156 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) 2009-2013, Data Geekery GmbH (http://www.datageekery.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This work is dual-licensed
|
||||
* - under the Apache Software License 2.0 (the "ASL")
|
||||
* - under the jOOQ License and Maintenance Agreement (the "jOOQ License")
|
||||
* =============================================================================
|
||||
* You may choose which license applies to you:
|
||||
*
|
||||
* - If you're using this work with Open Source databases, you may choose
|
||||
* either ASL or jOOQ License.
|
||||
* - If you're using this work with at least one commercial database, you must
|
||||
* choose jOOQ License
|
||||
*
|
||||
* For more information, please visit http://www.jooq.org/licenses
|
||||
*
|
||||
* Apache Software License 2.0:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* jOOQ License and Maintenance Agreement:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Data Geekery grants the Customer the non-exclusive, timely limited and
|
||||
* non-transferable license to install and use the Software under the terms of
|
||||
* the jOOQ License and Maintenance Agreement.
|
||||
*
|
||||
* This library is distributed with a LIMITED WARRANTY. See the jOOQ License
|
||||
* and Maintenance Agreement for more details: http://www.jooq.org/licensing
|
||||
*/
|
||||
package org.jooq.xtend
|
||||
|
||||
import org.jooq.Constants
|
||||
|
||||
class DSL extends Generators {
|
||||
|
||||
def static void main(String[] args) {
|
||||
val dsl = new DSL();
|
||||
dsl.generateRowValue();
|
||||
dsl.generateRowField();
|
||||
dsl.generateValues();
|
||||
}
|
||||
|
||||
def generateRowValue() {
|
||||
val out = new StringBuilder();
|
||||
|
||||
for (degree : (1..Constants::MAX_ROW_DEGREE)) {
|
||||
out.append('''
|
||||
|
||||
/**
|
||||
* Create a row value expression of degree <code>«degree»</code>.
|
||||
* <p>
|
||||
* Note: Not all databases support row value expressions, but many row value
|
||||
* expression operations can be simulated on all databases. See relevant row
|
||||
* value expression method Javadocs for details.
|
||||
*/
|
||||
«generatedMethod»
|
||||
@Support
|
||||
@Transition(
|
||||
name = "ROW",
|
||||
args = "Field+"
|
||||
)
|
||||
public static <«TN(degree)»> Row«degree»<«TN(degree)»> row(«TN_tn(degree)») {
|
||||
return row(«Utils_field_tn(degree)»);
|
||||
}
|
||||
''');
|
||||
}
|
||||
|
||||
insert("org.jooq.impl.DSL", out, "row-value");
|
||||
}
|
||||
|
||||
def generateRowField() {
|
||||
val out = new StringBuilder();
|
||||
|
||||
for (degree : (1..Constants::MAX_ROW_DEGREE)) {
|
||||
out.append('''
|
||||
|
||||
/**
|
||||
* Create a row value expression of degree <code>«degree»</code>.
|
||||
* <p>
|
||||
* Note: Not all databases support row value expressions, but many row value
|
||||
* expression operations can be simulated on all databases. See relevant row
|
||||
* value expression method Javadocs for details.
|
||||
*/
|
||||
«generatedMethod»
|
||||
@Support
|
||||
@Transition(
|
||||
name = "ROW",
|
||||
args = "Field+"
|
||||
)
|
||||
public static <«TN(degree)»> Row«degree»<«TN(degree)»> row(«Field_TN_tn(degree)») {
|
||||
return new RowImpl(«tn(degree)»);
|
||||
}
|
||||
''');
|
||||
}
|
||||
|
||||
insert("org.jooq.impl.DSL", out, "row-field");
|
||||
}
|
||||
|
||||
def generateValues() {
|
||||
val out = new StringBuilder();
|
||||
|
||||
for (degree : (1..Constants::MAX_ROW_DEGREE)) {
|
||||
out.append('''
|
||||
|
||||
/**
|
||||
* Create a <code>VALUES()</code> expression of degree <code>«degree»</code>.
|
||||
* <p>
|
||||
* The <code>VALUES()</code> constructor is a tool supported by some
|
||||
* databases to allow for constructing tables from constant values.
|
||||
* <p>
|
||||
* If a database doesn't support the <code>VALUES()</code> constructor, it
|
||||
* can be simulated using <code>SELECT .. UNION ALL ..</code>. The following
|
||||
* expressions are equivalent:
|
||||
* <p>
|
||||
* <pre><code>
|
||||
* -- Using VALUES() constructor
|
||||
* VALUES(«FOR d : (1..degree) SEPARATOR ', '»val1_«d»«ENDFOR»),
|
||||
* («FOR d : (1..degree) SEPARATOR ', '»val2_«d»«ENDFOR»),
|
||||
* («FOR d : (1..degree) SEPARATOR ', '»val3_«d»«ENDFOR»)
|
||||
* AS "v"(«FOR d : (1..degree) SEPARATOR ', '»"c«d»" «ENDFOR»)
|
||||
*
|
||||
* -- Using UNION ALL
|
||||
* SELECT «FOR d : (1..degree) SEPARATOR ', '»val1_«d» AS "c«d»"«ENDFOR») UNION ALL
|
||||
* SELECT «FOR d : (1..degree) SEPARATOR ', '»val1_«d» AS "c«d»"«ENDFOR») UNION ALL
|
||||
* SELECT «FOR d : (1..degree) SEPARATOR ', '»val1_«d» AS "c«d»"«ENDFOR»)
|
||||
* </code></pre>
|
||||
* <p>
|
||||
* Use {@link Table#as(String, String...)} to rename the resulting table and
|
||||
* its columns.
|
||||
*/
|
||||
«generatedMethod»
|
||||
@Support
|
||||
@Transition(
|
||||
name = "VALUES",
|
||||
args = "Row+"
|
||||
)
|
||||
public static <«TN(degree)»> Table<Record«degree»<«TN(degree)»>> values(Row«degree»<«TN(degree)»>... rows) {
|
||||
return new Values<Record«degree»<«TN(degree)»>>(rows).as("v", «FOR d : (1..degree) SEPARATOR ', '»"c«d»"«ENDFOR»);
|
||||
}
|
||||
''');
|
||||
}
|
||||
|
||||
insert("org.jooq.impl.DSL", out, "values");
|
||||
}
|
||||
}
|
||||
@ -1,473 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) 2009-2013, Data Geekery GmbH (http://www.datageekery.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This work is dual-licensed
|
||||
* - under the Apache Software License 2.0 (the "ASL")
|
||||
* - under the jOOQ License and Maintenance Agreement (the "jOOQ License")
|
||||
* =============================================================================
|
||||
* You may choose which license applies to you:
|
||||
*
|
||||
* - If you're using this work with Open Source databases, you may choose
|
||||
* either ASL or jOOQ License.
|
||||
* - If you're using this work with at least one commercial database, you must
|
||||
* choose jOOQ License
|
||||
*
|
||||
* For more information, please visit http://www.jooq.org/licenses
|
||||
*
|
||||
* Apache Software License 2.0:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* jOOQ License and Maintenance Agreement:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Data Geekery grants the Customer the non-exclusive, timely limited and
|
||||
* non-transferable license to install and use the Software under the terms of
|
||||
* the jOOQ License and Maintenance Agreement.
|
||||
*
|
||||
* This library is distributed with a LIMITED WARRANTY. See the jOOQ License
|
||||
* and Maintenance Agreement for more details: http://www.jooq.org/licensing
|
||||
*/
|
||||
package org.jooq.xtend
|
||||
|
||||
|
||||
/**
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
import org.jooq.Constants
|
||||
|
||||
class DSLContext extends Generators {
|
||||
|
||||
def static void main(String[] args) {
|
||||
val ctx = new DSLContext();
|
||||
ctx.generateNewRecord();
|
||||
ctx.generateSelect();
|
||||
ctx.generateSelectDistinct();
|
||||
ctx.generateInsert();
|
||||
ctx.generateMerge();
|
||||
}
|
||||
|
||||
def generateNewRecord() {
|
||||
val outImpl = new StringBuilder();
|
||||
val outAPI = new StringBuilder();
|
||||
|
||||
for (degree : (1..Constants::MAX_ROW_DEGREE)) {
|
||||
var fieldOrRow = "Row" + degree;
|
||||
|
||||
if (degree == 1) {
|
||||
fieldOrRow = "Field";
|
||||
}
|
||||
|
||||
outAPI.append('''
|
||||
|
||||
/**
|
||||
* Create a new empty {@link Record}.
|
||||
* <p>
|
||||
* The resulting record is attached to this {@link Configuration} by
|
||||
* default. Use {@link Settings#isAttachRecords()} to override this
|
||||
* behaviour.
|
||||
*
|
||||
* @return The new record
|
||||
*/
|
||||
«generatedMethod»
|
||||
<«TN(degree)»> Record«recTypeSuffix(degree)» newRecord(«Field_TN_fieldn(degree)»);
|
||||
''');
|
||||
|
||||
outImpl.append('''
|
||||
|
||||
«generatedMethod»
|
||||
@Override
|
||||
public <«TN(degree)»> Record«recTypeSuffix(degree)» newRecord(«Field_TN_fieldn(degree)») {
|
||||
return (Record«recTypeSuffixRaw(degree)») newRecord(new Field[] { «fieldn(degree)» });
|
||||
}
|
||||
''');
|
||||
}
|
||||
|
||||
insert("org.jooq.DSLContext", outAPI, "newRecord");
|
||||
insert("org.jooq.impl.DefaultDSLContext", outImpl, "newRecord");
|
||||
}
|
||||
|
||||
def generateSelect() {
|
||||
val outDSL = new StringBuilder();
|
||||
val outImpl = new StringBuilder();
|
||||
val outAPI = new StringBuilder();
|
||||
|
||||
for (degree : (1..Constants::MAX_ROW_DEGREE)) {
|
||||
var fieldOrRow = "Row" + degree;
|
||||
|
||||
if (degree == 1) {
|
||||
fieldOrRow = "Field";
|
||||
}
|
||||
|
||||
outAPI.append('''
|
||||
|
||||
/**
|
||||
* Create a new DSL select statement.
|
||||
* <p>
|
||||
* This is the same as {@link #select(Field...)}, except that it
|
||||
* declares additional record-level typesafety, which is needed by
|
||||
* {@link «fieldOrRow»#in(Select)}, {@link «fieldOrRow»#equal(Select)} and other predicate
|
||||
* building methods taking subselect arguments.
|
||||
* <p>
|
||||
* This creates an attached, renderable and executable <code>SELECT</code>
|
||||
* statement from this {@link DSLContext}. If you don't need to render or
|
||||
* execute this <code>SELECT</code> statement (e.g. because you want to
|
||||
* create a subselect), consider using the static
|
||||
* {@link DSL#select(«FOR d : (1..degree) SEPARATOR ', '»Field«ENDFOR»)} instead.
|
||||
* <p>
|
||||
* Example: <code><pre>
|
||||
* using(configuration)
|
||||
* .select(«field1_field2_fieldn(degree)»)
|
||||
* .from(table1)
|
||||
* .join(table2).on(field1.equal(field2))
|
||||
* .where(field1.greaterThan(100))
|
||||
* .orderBy(field2);
|
||||
* </pre></code>
|
||||
*
|
||||
* @see DSL#selectDistinct(Field...)
|
||||
* @see #selectDistinct(Field...)
|
||||
*/
|
||||
«generatedMethod»
|
||||
@Support
|
||||
@Transition(
|
||||
name = "SELECT",
|
||||
args = "Field+"
|
||||
)
|
||||
<«TN(degree)»> SelectSelectStep<Record«degree»<«TN(degree)»>> select(«Field_TN_fieldn(degree)»);
|
||||
''');
|
||||
|
||||
outDSL.append('''
|
||||
|
||||
/**
|
||||
* Create a new DSL subselect statement.
|
||||
* <p>
|
||||
* This is the same as {@link #select(Field...)}, except that it declares
|
||||
* additional record-level typesafety, which is needed by
|
||||
* {@link «fieldOrRow»#in(Select)}, {@link «fieldOrRow»#equal(Select)} and other predicate
|
||||
* building methods taking subselect arguments.
|
||||
* <p>
|
||||
* Unlike {@link Select} factory methods in the {@link DSLContext} API, this
|
||||
* creates an unattached, and thus not directly renderable or executable
|
||||
* <code>SELECT</code> statement. You can use this statement in two ways:
|
||||
* <ul>
|
||||
* <li>As a subselect within another select</li>
|
||||
* <li>As a statement, after attaching it using
|
||||
* {@link Select#attach(org.jooq.Configuration)}</li>
|
||||
* </ul>
|
||||
* <p>
|
||||
* Example: <code><pre>
|
||||
* import static org.jooq.impl.DSL.*;
|
||||
*
|
||||
* // [...]
|
||||
*
|
||||
* select(«field1_field2_fieldn(degree)»)
|
||||
* .from(table1)
|
||||
* .join(table2).on(field1.equal(field2))
|
||||
* .where(field1.greaterThan(100))
|
||||
* .orderBy(field2);
|
||||
* </pre></code>
|
||||
*
|
||||
* @see DSLContext#select(Field...)
|
||||
* @see #select(Field...)
|
||||
*/
|
||||
«generatedMethod»
|
||||
@Support
|
||||
@Transition(
|
||||
name = "SELECT",
|
||||
args = "Field+"
|
||||
)
|
||||
public static <«TN(degree)»> SelectSelectStep<Record«degree»<«TN(degree)»>> select(«Field_TN_fieldn(degree)») {
|
||||
return (SelectSelectStep) select(new Field[] { «fieldn(degree)» });
|
||||
}
|
||||
''');
|
||||
|
||||
outImpl.append('''
|
||||
|
||||
«generatedMethod»
|
||||
@Override
|
||||
public <«TN(degree)»> SelectSelectStep<Record«degree»<«TN(degree)»>> select(«Field_TN_fieldn(degree)») {
|
||||
return (SelectSelectStep) select(new Field[] { «fieldn(degree)» });
|
||||
}
|
||||
''');
|
||||
}
|
||||
|
||||
insert("org.jooq.DSLContext", outAPI, "select");
|
||||
insert("org.jooq.impl.DefaultDSLContext", outImpl, "select");
|
||||
insert("org.jooq.impl.DSL", outDSL, "select");
|
||||
}
|
||||
|
||||
def generateSelectDistinct() {
|
||||
val outDSL = new StringBuilder();
|
||||
val outImpl = new StringBuilder();
|
||||
val outAPI = new StringBuilder();
|
||||
|
||||
for (degree : (1..Constants::MAX_ROW_DEGREE)) {
|
||||
var fieldOrRow = "Row" + degree;
|
||||
|
||||
if (degree == 1) {
|
||||
fieldOrRow = "Field";
|
||||
}
|
||||
|
||||
outAPI.append('''
|
||||
|
||||
/**
|
||||
* Create a new DSL select statement.
|
||||
* <p>
|
||||
* This is the same as {@link #selectDistinct(Field...)}, except that it
|
||||
* declares additional record-level typesafety, which is needed by
|
||||
* {@link «fieldOrRow»#in(Select)}, {@link «fieldOrRow»#equal(Select)} and other predicate
|
||||
* building methods taking subselect arguments.
|
||||
* <p>
|
||||
* This creates an attached, renderable and executable <code>SELECT</code>
|
||||
* statement from this {@link DSLContext}. If you don't need to render or
|
||||
* execute this <code>SELECT</code> statement (e.g. because you want to
|
||||
* create a subselect), consider using the static
|
||||
* {@link DSL#selectDistinct(«FOR d : (1..degree) SEPARATOR ', '»Field«ENDFOR»)} instead.
|
||||
* <p>
|
||||
* Example: <code><pre>
|
||||
* using(configuration)
|
||||
* .selectDistinct(«field1_field2_fieldn(degree)»)
|
||||
* .from(table1)
|
||||
* .join(table2).on(field1.equal(field2))
|
||||
* .where(field1.greaterThan(100))
|
||||
* .orderBy(field2);
|
||||
* </pre></code>
|
||||
*
|
||||
* @see DSL#selectDistinct(Field...)
|
||||
* @see #selectDistinct(Field...)
|
||||
*/
|
||||
«generatedMethod»
|
||||
@Support
|
||||
@Transition(
|
||||
name = "SELECT DISTINCT",
|
||||
args = "Field+"
|
||||
)
|
||||
<«TN(degree)»> SelectSelectStep<Record«degree»<«TN(degree)»>> selectDistinct(«Field_TN_fieldn(degree)»);
|
||||
''');
|
||||
|
||||
outDSL.append('''
|
||||
|
||||
/**
|
||||
* Create a new DSL subselect statement.
|
||||
* <p>
|
||||
* This is the same as {@link #selectDistinct(Field...)}, except that it
|
||||
* declares additional record-level typesafety, which is needed by
|
||||
* {@link «fieldOrRow»#in(Select)}, {@link «fieldOrRow»#equal(Select)} and other predicate
|
||||
* building methods taking subselect arguments.
|
||||
* <p>
|
||||
* Unlike {@link Select} factory methods in the {@link DSLContext} API, this
|
||||
* creates an unattached, and thus not directly renderable or executable
|
||||
* <code>SELECT</code> statement. You can use this statement in two ways:
|
||||
* <ul>
|
||||
* <li>As a subselect within another select</li>
|
||||
* <li>As a statement, after attaching it using
|
||||
* {@link Select#attach(org.jooq.Configuration)}</li>
|
||||
* </ul>
|
||||
* <p>
|
||||
* Example: <code><pre>
|
||||
* import static org.jooq.impl.DSL.*;
|
||||
*
|
||||
* // [...]
|
||||
*
|
||||
* selectDistinct(«field1_field2_fieldn(degree)»)
|
||||
* .from(table1)
|
||||
* .join(table2).on(field1.equal(field2))
|
||||
* .where(field1.greaterThan(100))
|
||||
* .orderBy(field2);
|
||||
* </pre></code>
|
||||
*
|
||||
* @see DSLContext#selectDistinct(Field...)
|
||||
* @see #selectDistinct(Field...)
|
||||
*/
|
||||
«generatedMethod»
|
||||
@Support
|
||||
@Transition(
|
||||
name = "SELECT DISTINCT",
|
||||
args = "Field+"
|
||||
)
|
||||
public static <«TN(degree)»> SelectSelectStep<Record«degree»<«TN(degree)»>> selectDistinct(«Field_TN_fieldn(degree)») {
|
||||
return (SelectSelectStep) selectDistinct(new Field[] { «fieldn(degree)» });
|
||||
}
|
||||
''');
|
||||
|
||||
outImpl.append('''
|
||||
|
||||
«generatedMethod»
|
||||
@Override
|
||||
public <«TN(degree)»> SelectSelectStep<Record«degree»<«TN(degree)»>> selectDistinct(«Field_TN_fieldn(degree)») {
|
||||
return (SelectSelectStep) selectDistinct(new Field[] { «fieldn(degree)» });
|
||||
}
|
||||
''');
|
||||
}
|
||||
|
||||
insert("org.jooq.DSLContext", outAPI, "selectDistinct");
|
||||
insert("org.jooq.impl.DefaultDSLContext", outImpl, "selectDistinct");
|
||||
insert("org.jooq.impl.DSL", outDSL, "selectDistinct");
|
||||
}
|
||||
|
||||
def generateInsert() {
|
||||
val outDSL = new StringBuilder();
|
||||
val outImpl = new StringBuilder();
|
||||
val outAPI = new StringBuilder();
|
||||
|
||||
for (degree : (1..Constants::MAX_ROW_DEGREE)) {
|
||||
outAPI.append('''
|
||||
|
||||
/**
|
||||
* Create a new DSL insert statement.
|
||||
* <p>
|
||||
* Example: <code><pre>
|
||||
* using(configuration)
|
||||
* .insertInto(table, «field1_field2_fieldn(degree)»)
|
||||
* .values(«XXX1_XXX2_XXXn(degree, "valueA")»)
|
||||
* .values(«XXX1_XXX2_XXXn(degree, "valueB")»)
|
||||
* .onDuplicateKeyUpdate()
|
||||
* .set(field1, value1)
|
||||
* .set(field2, value2)
|
||||
* .execute();
|
||||
* </pre></code>
|
||||
*/
|
||||
«generatedMethod»
|
||||
@Support
|
||||
<R extends Record, «TN(degree)»> InsertValuesStep«degree»<R, «TN(degree)»> insertInto(Table<R> into, «Field_TN_fieldn(degree)»);
|
||||
''');
|
||||
|
||||
outDSL.append('''
|
||||
|
||||
/**
|
||||
* Create a new DSL insert statement.
|
||||
* <p>
|
||||
* Unlike {@link Insert} factory methods in the {@link DSLContext} API, this
|
||||
* creates an unattached, and thus not directly renderable or executable
|
||||
* <code>INSERT</code> statement.
|
||||
* <p>
|
||||
* Example: <code><pre>
|
||||
* import static org.jooq.impl.DSL.*;
|
||||
*
|
||||
* // [...]
|
||||
*
|
||||
* insertInto(table, «field1_field2_fieldn(degree)»)
|
||||
* .values(«XXX1_XXX2_XXXn(degree, "valueA")»)
|
||||
* .values(«XXX1_XXX2_XXXn(degree, "valueB")»)
|
||||
* .onDuplicateKeyUpdate()
|
||||
* .set(field1, value1)
|
||||
* .set(field2, value2)
|
||||
* </pre></code>
|
||||
*
|
||||
* @see DSLContext#insertInto(Table, «(1..degree).map[e | "Field"].join(", ")»)
|
||||
*/
|
||||
«generatedMethod»
|
||||
@Support
|
||||
public static <R extends Record, «TN(degree)»> InsertValuesStep«degree»<R, «TN(degree)»> insertInto(Table<R> into, «Field_TN_fieldn(degree)») {
|
||||
return (InsertValuesStep«degree») insertInto(into, new Field[] { «fieldn(degree)» });
|
||||
}
|
||||
''')
|
||||
|
||||
outImpl.append('''
|
||||
|
||||
«generatedMethod»
|
||||
@Override
|
||||
public <R extends Record, «TN(degree)»> InsertValuesStep«degree»<R, «TN(degree)»> insertInto(Table<R> into, «Field_TN_fieldn(degree)») {
|
||||
return new InsertImpl(configuration, into, Arrays.asList(new Field[] { «fieldn(degree)» }));
|
||||
}
|
||||
''');
|
||||
}
|
||||
|
||||
insert("org.jooq.DSLContext", outAPI, "insert");
|
||||
insert("org.jooq.impl.DefaultDSLContext", outImpl, "insert");
|
||||
insert("org.jooq.impl.DSL", outDSL, "insert");
|
||||
}
|
||||
|
||||
def generateMerge() {
|
||||
val outDSL = new StringBuilder();
|
||||
val outImpl = new StringBuilder();
|
||||
val outAPI = new StringBuilder();
|
||||
|
||||
for (degree : (1..Constants::MAX_ROW_DEGREE)) {
|
||||
outAPI.append('''
|
||||
|
||||
/**
|
||||
* Create a new DSL merge statement (H2-specific syntax).
|
||||
* <p>
|
||||
* This statement is available from DSL syntax only. It is known to be
|
||||
* supported in some way by any of these dialects:
|
||||
* <table border="1">
|
||||
* <tr>
|
||||
* <td>H2</td>
|
||||
* <td>H2 natively supports this special syntax</td>
|
||||
* <td><a href= "www.h2database.com/html/grammar.html#merge"
|
||||
* >www.h2database.com/html/grammar.html#merge</a></td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <td>DB2, HSQLDB, Oracle, SQL Server, Sybase SQL Anywhere</td>
|
||||
* <td>These databases can simulate the H2-specific MERGE statement using a
|
||||
* standard SQL MERGE statement, without restrictions</td>
|
||||
* <td>See {@link #mergeInto(Table)} for the standard MERGE statement</td>
|
||||
* </tr>
|
||||
* </table>
|
||||
*/
|
||||
«generatedMethod»
|
||||
@Support({ CUBRID, DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
<R extends Record, «TN(degree)»> MergeKeyStep«degree»<R, «TN(degree)»> mergeInto(Table<R> table, «Field_TN_fieldn(degree)»);
|
||||
''');
|
||||
|
||||
outDSL.append('''
|
||||
|
||||
/**
|
||||
* Create a new DSL merge statement (H2-specific syntax).
|
||||
* <p>
|
||||
* Unlike {@link Merge} factory methods in the {@link DSLContext} API, this
|
||||
* creates an unattached, and thus not directly renderable or executable
|
||||
* <code>MERGE</code> statement.
|
||||
* <p>
|
||||
* This statement is available from DSL syntax only. It is known to be
|
||||
* supported in some way by any of these dialects:
|
||||
* <table border="1">
|
||||
* <tr>
|
||||
* <td>H2</td>
|
||||
* <td>H2 natively supports this special syntax</td>
|
||||
* <td><a href= "www.h2database.com/html/grammar.html#merge"
|
||||
* >www.h2database.com/html/grammar.html#merge</a></td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <td>DB2, HSQLDB, Oracle, SQL Server, Sybase SQL Anywhere</td>
|
||||
* <td>These databases can simulate the H2-specific MERGE statement using a
|
||||
* standard SQL MERGE statement, without restrictions</td>
|
||||
* <td>See {@link #mergeInto(Table)} for the standard MERGE statement</td>
|
||||
* </tr>
|
||||
* </table>
|
||||
*
|
||||
* @see DSLContext#mergeInto(Table, «(1..degree).map[e | "Field"].join(", ")»)
|
||||
*/
|
||||
«generatedMethod»
|
||||
@Support({ CUBRID, DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
public static <R extends Record, «TN(degree)»> MergeKeyStep«degree»<R, «TN(degree)»> mergeInto(Table<R> table, «Field_TN_fieldn(degree)») {
|
||||
return using(new DefaultConfiguration()).mergeInto(table, «fieldn(degree)»);
|
||||
}
|
||||
''');
|
||||
|
||||
outImpl.append('''
|
||||
|
||||
«generatedMethod»
|
||||
@Override
|
||||
public <R extends Record, «TN(degree)»> MergeKeyStep«degree»<R, «TN(degree)»> mergeInto(Table<R> table, «Field_TN_fieldn(degree)») {
|
||||
return new MergeImpl(configuration, table, Arrays.asList(«fieldn(degree)»));
|
||||
}
|
||||
''');
|
||||
}
|
||||
|
||||
insert("org.jooq.DSLContext", outAPI, "merge");
|
||||
insert("org.jooq.impl.DefaultDSLContext", outImpl, "merge");
|
||||
insert("org.jooq.impl.DSL", outDSL, "merge");
|
||||
}
|
||||
}
|
||||
@ -1,58 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) 2009-2013, Data Geekery GmbH (http://www.datageekery.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This work is dual-licensed
|
||||
* - under the Apache Software License 2.0 (the "ASL")
|
||||
* - under the jOOQ License and Maintenance Agreement (the "jOOQ License")
|
||||
* =============================================================================
|
||||
* You may choose which license applies to you:
|
||||
*
|
||||
* - If you're using this work with Open Source databases, you may choose
|
||||
* either ASL or jOOQ License.
|
||||
* - If you're using this work with at least one commercial database, you must
|
||||
* choose jOOQ License
|
||||
*
|
||||
* For more information, please visit http://www.jooq.org/licenses
|
||||
*
|
||||
* Apache Software License 2.0:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* jOOQ License and Maintenance Agreement:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Data Geekery grants the Customer the non-exclusive, timely limited and
|
||||
* non-transferable license to install and use the Software under the terms of
|
||||
* the jOOQ License and Maintenance Agreement.
|
||||
*
|
||||
* This library is distributed with a LIMITED WARRANTY. See the jOOQ License
|
||||
* and Maintenance Agreement for more details: http://www.jooq.org/licensing
|
||||
*/
|
||||
package org.jooq.xtend
|
||||
|
||||
/**
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
class GenerateAll {
|
||||
def static void main(String[] args) {
|
||||
BetweenAndSteps::main(args);
|
||||
Conversions::main(args);
|
||||
DSLContext::main(args);
|
||||
DSL::main(args);
|
||||
InsertDSL::main(args);
|
||||
MergeDSL::main(args);
|
||||
Records::main(args);
|
||||
Rows::main(args);
|
||||
UpdateDSL::main(args);
|
||||
}
|
||||
}
|
||||
@ -1,450 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) 2009-2013, Data Geekery GmbH (http://www.datageekery.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This work is dual-licensed
|
||||
* - under the Apache Software License 2.0 (the "ASL")
|
||||
* - under the jOOQ License and Maintenance Agreement (the "jOOQ License")
|
||||
* =============================================================================
|
||||
* You may choose which license applies to you:
|
||||
*
|
||||
* - If you're using this work with Open Source databases, you may choose
|
||||
* either ASL or jOOQ License.
|
||||
* - If you're using this work with at least one commercial database, you must
|
||||
* choose jOOQ License
|
||||
*
|
||||
* For more information, please visit http://www.jooq.org/licenses
|
||||
*
|
||||
* Apache Software License 2.0:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* jOOQ License and Maintenance Agreement:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Data Geekery grants the Customer the non-exclusive, timely limited and
|
||||
* non-transferable license to install and use the Software under the terms of
|
||||
* the jOOQ License and Maintenance Agreement.
|
||||
*
|
||||
* This library is distributed with a LIMITED WARRANTY. See the jOOQ License
|
||||
* and Maintenance Agreement for more details: http://www.jooq.org/licensing
|
||||
*/
|
||||
package org.jooq.xtend
|
||||
|
||||
import java.io.File
|
||||
import java.io.FileWriter
|
||||
import java.io.IOException
|
||||
import java.io.RandomAccessFile
|
||||
|
||||
/**
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
abstract class Generators {
|
||||
|
||||
def file(String className) {
|
||||
if (className.contains("scala")) {
|
||||
return new File("./../jOOQ-scala/src/main/scala/" + className.replace(".", "/") + ".scala");
|
||||
}
|
||||
else {
|
||||
return new File("./../jOOQ/src/main/java/" + className.replace(".", "/") + ".java");
|
||||
}
|
||||
}
|
||||
|
||||
def read(String className) {
|
||||
return read(file(className))
|
||||
}
|
||||
|
||||
def read(File file) {
|
||||
val f = new RandomAccessFile(file, "r");
|
||||
try {
|
||||
val contents = Util::newByteArray(f.length);
|
||||
f.readFully(contents);
|
||||
return new String(contents);
|
||||
}
|
||||
catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
finally {
|
||||
f.close;
|
||||
}
|
||||
}
|
||||
|
||||
def insert(String className, CharSequence contents, String section) {
|
||||
val result = new StringBuilder();
|
||||
val original = read(className);
|
||||
val start = "// [jooq-tools] START [" + section + "]";
|
||||
val end = "// [jooq-tools] END [" + section + "]"
|
||||
|
||||
result.append(original.substring(0, original.indexOf(start) + start.length + 1))
|
||||
result.append(contents);
|
||||
result.append("\n");
|
||||
result.append(original.substring(original.indexOf(end)));
|
||||
|
||||
write(className, result, section);
|
||||
}
|
||||
|
||||
def write(String className, CharSequence contents) {
|
||||
write(className, contents, null);
|
||||
}
|
||||
|
||||
def write(String className, CharSequence contents, String section) {
|
||||
val file = file(className);
|
||||
write(file, contents, section);
|
||||
}
|
||||
|
||||
def write(File file, CharSequence contents) {
|
||||
write(file, contents, null);
|
||||
}
|
||||
|
||||
def write(File file, CharSequence contents, String section) {
|
||||
file.getParentFile().mkdirs();
|
||||
|
||||
try {
|
||||
System::out.println("Writing " + file + (if (section != null) (" (section: " + section + ")") else ""));
|
||||
val fw = new FileWriter(file);
|
||||
fw.append(contents);
|
||||
fw.flush();
|
||||
fw.close();
|
||||
}
|
||||
catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
def first(int degree) {
|
||||
switch degree {
|
||||
case 1 : "first"
|
||||
case 2 : "second"
|
||||
case 3 : "third"
|
||||
case 4 : "fourth"
|
||||
case 5 : "fifth"
|
||||
case 6 : "sixth"
|
||||
case 7 : "seventh"
|
||||
case 8 : "eighth"
|
||||
case 9 : "ninth"
|
||||
case 10 : "tenth"
|
||||
case 11 : "eleventh"
|
||||
case 12 : "twelfth"
|
||||
case 13 : "thirteenth"
|
||||
case 14 : "fourteenth"
|
||||
case 15 : "fifteenth"
|
||||
case 16 : "sixteenth"
|
||||
case 17 : "seventeenth"
|
||||
case 18 : "eighteenth"
|
||||
case 19 : "ninteenth"
|
||||
case 20 : "twentieth"
|
||||
case 21 : "twenty-first"
|
||||
case 22 : "twenty-second"
|
||||
case degree % 10 == 1 : degree + "st"
|
||||
case degree % 10 == 2 : degree + "nd"
|
||||
case degree % 10 == 3 : degree + "rd"
|
||||
default : degree + "th"
|
||||
}
|
||||
}
|
||||
|
||||
def classHeader() {
|
||||
'''
|
||||
/**
|
||||
* Copyright (c) 2009-2013, Data Geekery GmbH (http://www.datageekery.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This work is dual-licensed
|
||||
* - under the Apache Software License 2.0 (the "ASL")
|
||||
* - under the jOOQ License and Maintenance Agreement (the "jOOQ License")
|
||||
* =============================================================================
|
||||
* You may choose which license applies to you:
|
||||
*
|
||||
* - If you're using this work with Open Source databases, you may choose
|
||||
* either ASL or jOOQ License.
|
||||
* - If you're using this work with at least one commercial database, you must
|
||||
* choose jOOQ License
|
||||
*
|
||||
* For more information, please visit http://www.jooq.org/licenses
|
||||
*
|
||||
* Apache Software License 2.0:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* jOOQ License and Maintenance Agreement:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Data Geekery grants the Customer the non-exclusive, timely limited and
|
||||
* non-transferable license to install and use the Software under the terms of
|
||||
* the jOOQ License and Maintenance Agreement.
|
||||
*
|
||||
* This library is distributed with a LIMITED WARRANTY. See the jOOQ License
|
||||
* and Maintenance Agreement for more details: http://www.jooq.org/licensing
|
||||
*/
|
||||
'''
|
||||
}
|
||||
|
||||
def generatedAnnotation() {
|
||||
'''
|
||||
@Generated("This class was generated using jOOQ-tools")
|
||||
'''
|
||||
}
|
||||
|
||||
def generatedMethod() {
|
||||
'''
|
||||
@Generated("This method was generated using jOOQ-tools")
|
||||
'''
|
||||
}
|
||||
|
||||
/**
|
||||
* A comma-separated list of types
|
||||
* <p>
|
||||
* <code>T1, T2, .., T[N]</code>
|
||||
*/
|
||||
def TN(int degree) {
|
||||
return
|
||||
if (degree == 0)
|
||||
"Object..."
|
||||
else
|
||||
(1..degree).join(", ", [e | "T" + e])
|
||||
}
|
||||
|
||||
/**
|
||||
* A comma-separated list of identifier references
|
||||
* <p>
|
||||
* <code>t1, t2, .., t[N]</code>
|
||||
*/
|
||||
def tn(int degree) {
|
||||
return
|
||||
if (degree == 0)
|
||||
"values"
|
||||
else
|
||||
(1..degree).join(", ", [e | "t" + e])
|
||||
}
|
||||
|
||||
/**
|
||||
* A comma-separated list of identifier declarations
|
||||
* <p>
|
||||
* <code>T1 t1, T2 t2, .., T[N] t[N]</code>
|
||||
*/
|
||||
def TN_tn(int degree) {
|
||||
return
|
||||
if (degree == 0)
|
||||
"Object... values"
|
||||
else
|
||||
(1..degree).join(", ", [e | "T" + e + " t" + e])
|
||||
}
|
||||
|
||||
/**
|
||||
* A comma-separated list of identifier declarations
|
||||
* <p>
|
||||
* <code>Object t1, Object t2, .., Object t[N]</code>
|
||||
*/
|
||||
def Object_tn(int degree) {
|
||||
return
|
||||
if (degree == 0)
|
||||
"Object... values"
|
||||
else
|
||||
(1..degree).join(", ", [e | "Object t" + e])
|
||||
}
|
||||
|
||||
/**
|
||||
* A comma-separated list of identifier declarations
|
||||
* <p>
|
||||
* <code>T1 t1, T2 t2, .., T[N] t[N]</code>
|
||||
*/
|
||||
def TN_XXXn(int degree, String XXX) {
|
||||
return
|
||||
if (degree == 0)
|
||||
"Object... " + XXX + "s"
|
||||
else
|
||||
(1..degree).join(", ", [e | "T" + e + " " + XXX + e])
|
||||
}
|
||||
|
||||
/**
|
||||
* A comma-separated list of field declarations
|
||||
* <p>
|
||||
* <code>Field<T1> t1, Field<T2> t2, .., Field<T[N]> t[N]</code>
|
||||
*/
|
||||
def Field_TN_tn(int degree) {
|
||||
return
|
||||
if (degree == 0)
|
||||
"Field<?>... values"
|
||||
else
|
||||
(1..degree).join(", ", [e | "Field<T" + e + "> t" + e])
|
||||
}
|
||||
|
||||
/**
|
||||
* A comma-separated list of field declarations
|
||||
* <p>
|
||||
* <code>Field t1, Field t2, .., Field t[N]</code>
|
||||
*/
|
||||
def Field_tn(int degree) {
|
||||
return
|
||||
if (degree == 0)
|
||||
"Field<?>... values"
|
||||
else
|
||||
(1..degree).join(", ", [e | "Field t" + e])
|
||||
}
|
||||
|
||||
/**
|
||||
* A comma-separated list of field declarations
|
||||
* <p>
|
||||
* <code>Field<T1> t1, Field<T2> t2, .., Field<T[N]> t[N]</code>
|
||||
*/
|
||||
def Field_TN_XXXn(int degree, String XXX) {
|
||||
return
|
||||
if (degree == 0)
|
||||
"Field<?>... " + XXX + "s"
|
||||
else
|
||||
(1..degree).join(", ", [e | "Field<T" + e + "> " + XXX + e])
|
||||
}
|
||||
|
||||
/**
|
||||
* A comma-separated list of field declarations
|
||||
* <p>
|
||||
* <code>Field<T1> field1, Field<T2> field2, .., Field<T[N]> field[N]</code>
|
||||
*/
|
||||
def Field_TN_fieldn(int degree) {
|
||||
return
|
||||
if (degree == 0)
|
||||
"Field<?>... fields"
|
||||
else
|
||||
(1..degree).join(", ", [e | "Field<T" + e + "> field" + e])
|
||||
}
|
||||
|
||||
/**
|
||||
* A comma-separated list of field references
|
||||
* <p>
|
||||
* <code>field1, field2, .., field[N]</code>
|
||||
*/
|
||||
def fieldn(int degree) {
|
||||
XXXn(degree, "field")
|
||||
}
|
||||
|
||||
/**
|
||||
* A comma-separated list of field references
|
||||
* <p>
|
||||
* <code>field1, field2, .., field[N]</code>
|
||||
*/
|
||||
def XXXn(int degree, String XXX) {
|
||||
return
|
||||
if (degree == 0)
|
||||
XXX + "s"
|
||||
else
|
||||
(1..degree).join(", ", [e | XXX + e])
|
||||
}
|
||||
|
||||
/**
|
||||
* A comma-separated list of field references
|
||||
* <p>
|
||||
* Unlike {@link #fieldn(int)}, this will return at most 5 fields
|
||||
* <p>
|
||||
* <code>field1, field2, .., field[N]</code>
|
||||
*/
|
||||
def field1_field2_fieldn(int degree) {
|
||||
XXX1_XXX2_XXXn(degree, "field")
|
||||
}
|
||||
|
||||
/**
|
||||
* A comma-separated list of literals
|
||||
* <p>
|
||||
* Unlike {@link #fieldn(int)}, this will return at most 5 fields
|
||||
* <p>
|
||||
* <code>XXX1, XXX2, .., XXX[N]</code>
|
||||
*/
|
||||
def XXX1_XXX2_XXXn(int degree, String XXX) {
|
||||
if (degree <= 5) {
|
||||
return fieldn(degree);
|
||||
}
|
||||
else {
|
||||
return (1..3).join(", ", [e | XXX + e]) +
|
||||
", .., " +
|
||||
(degree - 1..degree).join(", ", [e | XXX + e])
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A comma-separated list of value constructor references
|
||||
* <p>
|
||||
* <code>val(t1), val(t2), .., val(t[N])</code>
|
||||
*/
|
||||
def Utils_field_tn(int degree) {
|
||||
(1..degree).join(", ", [e | "Utils.field(t" + e + ")"])
|
||||
}
|
||||
|
||||
/**
|
||||
* A numeric degree or "N"
|
||||
*/
|
||||
def degreeOrN(int degree) {
|
||||
return degreeOr(degree, "N")
|
||||
}
|
||||
|
||||
/**
|
||||
* A numeric degree or [nothing]
|
||||
*/
|
||||
def degreeOr(int degree) {
|
||||
return degreeOr(degree, "")
|
||||
}
|
||||
|
||||
/**
|
||||
* A numeric degree or [or]
|
||||
*/
|
||||
def degreeOr(int degree, String or) {
|
||||
return if (degree == 0) or else degree
|
||||
}
|
||||
|
||||
/**
|
||||
* The generic type of a class, e.g. <code>""</code> or <code><T1, T2, T3></code>
|
||||
*/
|
||||
def type(int degree) {
|
||||
type(degree, "")
|
||||
}
|
||||
|
||||
/**
|
||||
* The generic type of a class, e.g. <code>""</code> or <code><T1, T2, T3></code>
|
||||
*/
|
||||
def type(int degree, String spacer) {
|
||||
'''«IF degree > 0»<«TN(degree)»>«spacer»«ENDIF»'''
|
||||
}
|
||||
|
||||
/**
|
||||
* The generic type suffix of a class, e.g. <code>N</code> or <code>3<T1, T2, T3></code>
|
||||
*/
|
||||
def typeSuffix(int degree) {
|
||||
'''«typeSuffixRaw(degree)»«type(degree)»'''
|
||||
}
|
||||
|
||||
/**
|
||||
* The "raw" generic type suffix of a class, e.g. <code>N</code> or <code>3</code>
|
||||
*/
|
||||
def typeSuffixRaw(int degree) {
|
||||
'''«degreeOrN(degree)»'''
|
||||
}
|
||||
|
||||
/**
|
||||
* The generic type suffix of a record, e.g. <code>""</code> or <code>3<T1, T2, T3></code>
|
||||
*/
|
||||
def recTypeSuffix(int degree) {
|
||||
'''«recTypeSuffixRaw(degree)»«type(degree)»'''
|
||||
}
|
||||
|
||||
/**
|
||||
* The "raw" generic type suffix of a record, e.g. <code>""</code> or <code>3</code>
|
||||
*/
|
||||
def recTypeSuffixRaw(int degree) {
|
||||
'''«degreeOr(degree)»'''
|
||||
}
|
||||
}
|
||||
@ -1,362 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) 2009-2013, Data Geekery GmbH (http://www.datageekery.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This work is dual-licensed
|
||||
* - under the Apache Software License 2.0 (the "ASL")
|
||||
* - under the jOOQ License and Maintenance Agreement (the "jOOQ License")
|
||||
* =============================================================================
|
||||
* You may choose which license applies to you:
|
||||
*
|
||||
* - If you're using this work with Open Source databases, you may choose
|
||||
* either ASL or jOOQ License.
|
||||
* - If you're using this work with at least one commercial database, you must
|
||||
* choose jOOQ License
|
||||
*
|
||||
* For more information, please visit http://www.jooq.org/licenses
|
||||
*
|
||||
* Apache Software License 2.0:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* jOOQ License and Maintenance Agreement:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Data Geekery grants the Customer the non-exclusive, timely limited and
|
||||
* non-transferable license to install and use the Software under the terms of
|
||||
* the jOOQ License and Maintenance Agreement.
|
||||
*
|
||||
* This library is distributed with a LIMITED WARRANTY. See the jOOQ License
|
||||
* and Maintenance Agreement for more details: http://www.jooq.org/licensing
|
||||
*/
|
||||
package org.jooq.xtend
|
||||
|
||||
|
||||
/**
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
import org.jooq.Constants
|
||||
|
||||
class InsertDSL extends Generators {
|
||||
|
||||
def static void main(String[] args) {
|
||||
val insert = new InsertDSL();
|
||||
insert.generateInsertValuesStep();
|
||||
insert.generateInsertImpl();
|
||||
}
|
||||
|
||||
def generateInsertValuesStep() {
|
||||
for (degree : (1..Constants::MAX_ROW_DEGREE)) {
|
||||
val out = new StringBuilder();
|
||||
|
||||
out.append('''
|
||||
«classHeader»
|
||||
package org.jooq;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import javax.annotation.Generated;
|
||||
|
||||
/**
|
||||
* This type is used for the {@link Insert}'s DSL API.
|
||||
* <p>
|
||||
* Example: <code><pre>
|
||||
* using(configuration)
|
||||
* .insertInto(table, «field1_field2_fieldn(degree)»)
|
||||
* .values(«XXX1_XXX2_XXXn(degree, "valueA")»)
|
||||
* .values(«XXX1_XXX2_XXXn(degree, "valueB")»)
|
||||
* .onDuplicateKeyUpdate()
|
||||
* .set(field1, value1)
|
||||
* .set(field2, value2)
|
||||
* .execute();
|
||||
* </pre></code>
|
||||
*
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
«generatedAnnotation»
|
||||
public interface InsertValuesStep«degree»<R extends Record, «TN(degree)»> extends InsertOnDuplicateStep<R> {
|
||||
|
||||
/**
|
||||
* Add values to the insert statement.
|
||||
*/
|
||||
@Support
|
||||
InsertValuesStep«degree»<R, «TN(degree)»> values(«TN_XXXn(degree, "value")»);
|
||||
|
||||
/**
|
||||
* Add values to the insert statement.
|
||||
*/
|
||||
@Support
|
||||
InsertValuesStep«degree»<R, «TN(degree)»> values(«Field_TN_XXXn(degree, "value")»);
|
||||
|
||||
/**
|
||||
* Add values to the insert statement.
|
||||
*/
|
||||
@Support
|
||||
InsertValuesStep«degree»<R, «TN(degree)»> values(Collection<?> values);
|
||||
|
||||
/**
|
||||
* Use a <code>SELECT</code> statement as the source of values for the
|
||||
* <code>INSERT</code> statement
|
||||
* <p>
|
||||
* This variant of the <code>INSERT .. SELECT</code> statement expects a
|
||||
* select returning exactly as many fields as specified previously in the
|
||||
* <code>INTO</code> clause:
|
||||
* {@link DSLContext#insertInto(Table, «(1..degree).join(", ", [e | 'Field'])»)}
|
||||
*/
|
||||
@Support
|
||||
Insert<R> select(Select<? extends Record«degree»<«TN(degree)»>> select);
|
||||
}
|
||||
''');
|
||||
|
||||
write("org.jooq.InsertValuesStep" + degree, out);
|
||||
}
|
||||
}
|
||||
|
||||
def generateInsertImpl() {
|
||||
val out = new StringBuilder();
|
||||
|
||||
out.append('''
|
||||
«classHeader»
|
||||
package org.jooq.impl;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.jooq.AttachableInternal;
|
||||
import org.jooq.Configuration;
|
||||
import org.jooq.Field;
|
||||
import org.jooq.FieldLike;
|
||||
import org.jooq.Insert;
|
||||
import org.jooq.InsertOnDuplicateSetMoreStep;
|
||||
import org.jooq.InsertQuery;
|
||||
import org.jooq.InsertResultStep;
|
||||
import org.jooq.InsertSetMoreStep;
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
import org.jooq.InsertValuesStep«degree»;
|
||||
«ENDFOR»
|
||||
import org.jooq.InsertValuesStepN;
|
||||
import org.jooq.Record;
|
||||
import org.jooq.Record1;
|
||||
import org.jooq.Result;
|
||||
import org.jooq.Select;
|
||||
import org.jooq.Table;
|
||||
|
||||
/**
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
class InsertImpl<R extends Record, «TN(Constants::MAX_ROW_DEGREE)»>
|
||||
extends AbstractDelegatingQuery<InsertQuery<R>>
|
||||
implements
|
||||
|
||||
// Cascading interface implementations for Insert behaviour
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
InsertValuesStep«degree»<R, «TN(degree)»>,
|
||||
«ENDFOR»
|
||||
InsertValuesStepN<R>,
|
||||
InsertSetMoreStep<R>,
|
||||
InsertOnDuplicateSetMoreStep<R>,
|
||||
InsertResultStep<R> {
|
||||
|
||||
/**
|
||||
* Generated UID
|
||||
*/
|
||||
private static final long serialVersionUID = 4222898879771679107L;
|
||||
|
||||
private final Field<?>[] fields;
|
||||
private final Table<R> into;
|
||||
private boolean onDuplicateKeyUpdate;
|
||||
|
||||
InsertImpl(Configuration configuration, Table<R> into, Collection<? extends Field<?>> fields) {
|
||||
super(new InsertQueryImpl<R>(configuration, into));
|
||||
|
||||
this.into = into;
|
||||
this.fields = (fields == null || fields.size() == 0)
|
||||
? into.fields()
|
||||
: fields.toArray(new Field[fields.size()]);
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// The DSL API
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
@Override
|
||||
public final Insert<R> select(Select select) {
|
||||
Configuration configuration = ((AttachableInternal) getDelegate()).configuration();
|
||||
return new InsertSelectQueryImpl<R>(configuration, into, fields, select);
|
||||
}
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
|
||||
@Override
|
||||
public final InsertImpl values(«TN_XXXn(degree, "value")») {
|
||||
return values(new Object[] { «XXXn(degree, "value")» });
|
||||
}
|
||||
«ENDFOR»
|
||||
|
||||
@Override
|
||||
public final InsertImpl values(Object... values) {
|
||||
if (fields.length != values.length) {
|
||||
throw new IllegalArgumentException("The number of values must match the number of fields");
|
||||
}
|
||||
|
||||
getDelegate().newRecord();
|
||||
for (int i = 0; i < fields.length; i++) {
|
||||
addValue(getDelegate(), fields[i], values[i]);
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final InsertImpl values(Collection<?> values) {
|
||||
return values(values.toArray());
|
||||
}
|
||||
|
||||
private <T> void addValue(InsertQuery<R> delegate, Field<T> field, Object object) {
|
||||
|
||||
// [#1343] Only convert non-jOOQ objects
|
||||
if (object instanceof Field) {
|
||||
delegate.addValue(field, (Field<T>) object);
|
||||
}
|
||||
else if (object instanceof FieldLike) {
|
||||
delegate.addValue(field, ((FieldLike) object).<T>asField());
|
||||
}
|
||||
else {
|
||||
delegate.addValue(field, field.getDataType().convert(object));
|
||||
}
|
||||
}
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
|
||||
@Override
|
||||
public final InsertImpl values(«Field_TN_XXXn(degree, "value")») {
|
||||
return values(new Field[] { «XXXn(degree, "value")» });
|
||||
}
|
||||
«ENDFOR»
|
||||
|
||||
@Override
|
||||
public final InsertImpl values(Field<?>... values) {
|
||||
List<Field<?>> values1 = Arrays.asList(values);
|
||||
if (fields.length != values1.size()) {
|
||||
throw new IllegalArgumentException("The number of values must match the number of fields");
|
||||
}
|
||||
|
||||
getDelegate().newRecord();
|
||||
for (int i = 0; i < fields.length; i++) {
|
||||
// javac has trouble when inferring Object for T. Use Void instead
|
||||
getDelegate().addValue((Field<Void>) fields[i], (Field<Void>) values1.get(i));
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final InsertImpl onDuplicateKeyUpdate() {
|
||||
onDuplicateKeyUpdate = true;
|
||||
getDelegate().onDuplicateKeyUpdate(true);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final InsertImpl onDuplicateKeyIgnore() {
|
||||
getDelegate().onDuplicateKeyIgnore(true);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> InsertImpl set(Field<T> field, T value) {
|
||||
if (onDuplicateKeyUpdate) {
|
||||
getDelegate().addValueForUpdate(field, value);
|
||||
}
|
||||
else {
|
||||
getDelegate().addValue(field, value);
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> InsertImpl set(Field<T> field, Field<T> value) {
|
||||
if (onDuplicateKeyUpdate) {
|
||||
getDelegate().addValueForUpdate(field, value);
|
||||
}
|
||||
else {
|
||||
getDelegate().addValue(field, value);
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> InsertImpl set(Field<T> field, Select<? extends Record1<T>> value) {
|
||||
return set(field, value.<T>asField());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final InsertImpl set(Map<? extends Field<?>, ?> map) {
|
||||
if (onDuplicateKeyUpdate) {
|
||||
getDelegate().addValuesForUpdate(map);
|
||||
}
|
||||
else {
|
||||
getDelegate().addValues(map);
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final InsertImpl set(Record record) {
|
||||
return set(Utils.map(record));
|
||||
}
|
||||
|
||||
@Override
|
||||
public final InsertImpl newRecord() {
|
||||
getDelegate().newRecord();
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final InsertImpl returning() {
|
||||
getDelegate().setReturning();
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final InsertImpl returning(Field<?>... f) {
|
||||
getDelegate().setReturning(f);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final InsertImpl returning(Collection<? extends Field<?>> f) {
|
||||
getDelegate().setReturning(f);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Result<R> fetch() {
|
||||
getDelegate().execute();
|
||||
return getDelegate().getReturnedRecords();
|
||||
}
|
||||
|
||||
@Override
|
||||
public final R fetchOne() {
|
||||
getDelegate().execute();
|
||||
return getDelegate().getReturnedRecord();
|
||||
}
|
||||
}
|
||||
''');
|
||||
|
||||
write("org.jooq.impl.InsertImpl", out);
|
||||
}
|
||||
}
|
||||
@ -1,417 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) 2009-2013, Data Geekery GmbH (http://www.datageekery.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This work is dual-licensed
|
||||
* - under the Apache Software License 2.0 (the "ASL")
|
||||
* - under the jOOQ License and Maintenance Agreement (the "jOOQ License")
|
||||
* =============================================================================
|
||||
* You may choose which license applies to you:
|
||||
*
|
||||
* - If you're using this work with Open Source databases, you may choose
|
||||
* either ASL or jOOQ License.
|
||||
* - If you're using this work with at least one commercial database, you must
|
||||
* choose jOOQ License
|
||||
*
|
||||
* For more information, please visit http://www.jooq.org/licenses
|
||||
*
|
||||
* Apache Software License 2.0:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* jOOQ License and Maintenance Agreement:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Data Geekery grants the Customer the non-exclusive, timely limited and
|
||||
* non-transferable license to install and use the Software under the terms of
|
||||
* the jOOQ License and Maintenance Agreement.
|
||||
*
|
||||
* This library is distributed with a LIMITED WARRANTY. See the jOOQ License
|
||||
* and Maintenance Agreement for more details: http://www.jooq.org/licensing
|
||||
*/
|
||||
package org.jooq.xtend
|
||||
|
||||
import org.jooq.Constants
|
||||
|
||||
class MergeDSL extends Generators {
|
||||
|
||||
def static void main(String[] args) {
|
||||
val merge = new MergeDSL();
|
||||
merge.generateMergeNotMatchedStep();
|
||||
merge.generateMergeNotMatchedValuesStep();
|
||||
merge.generateMergeKeyStep();
|
||||
merge.generateMergeValuesStep();
|
||||
merge.generateMergeImplImplements();
|
||||
merge.generateMergeImplValues();
|
||||
merge.generateMergeImplWhenNotMatchedThenInsert();
|
||||
}
|
||||
|
||||
def generateMergeNotMatchedStep() {
|
||||
val out = new StringBuilder();
|
||||
|
||||
out.append('''
|
||||
«classHeader»
|
||||
package org.jooq;
|
||||
|
||||
import static org.jooq.SQLDialect.CUBRID;
|
||||
import static org.jooq.SQLDialect.DB2;
|
||||
import static org.jooq.SQLDialect.HSQLDB;
|
||||
import static org.jooq.SQLDialect.ORACLE;
|
||||
import static org.jooq.SQLDialect.SQLSERVER;
|
||||
import static org.jooq.SQLDialect.SYBASE;
|
||||
|
||||
import org.jooq.api.annotation.State;
|
||||
import org.jooq.api.annotation.Transition;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import javax.annotation.Generated;
|
||||
|
||||
/**
|
||||
* This type is used for the {@link Merge}'s DSL API.
|
||||
* <p>
|
||||
* Example: <code><pre>
|
||||
* DSLContext create = DSL.using(configuration);
|
||||
*
|
||||
* create.mergeInto(table)
|
||||
* .using(select)
|
||||
* .on(condition)
|
||||
* .whenMatchedThenUpdate()
|
||||
* .set(field1, value1)
|
||||
* .set(field2, value2)
|
||||
* .whenNotMatchedThenInsert(field1, field2)
|
||||
* .values(value1, value2)
|
||||
* .execute();
|
||||
* </pre></code>
|
||||
*
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
«generatedAnnotation»
|
||||
@State
|
||||
public interface MergeNotMatchedStep<R extends Record> extends MergeFinalStep<R> {
|
||||
|
||||
/**
|
||||
* Add the <code>WHEN NOT MATCHED THEN INSERT</code> clause to the
|
||||
* <code>MERGE</code> statement.
|
||||
* <p>
|
||||
* Unlike the {@link #whenNotMatchedThenInsert(Field...)} and
|
||||
* {@link #whenNotMatchedThenInsert(Collection)} methods, this will give
|
||||
* access to a MySQL-like API allowing for
|
||||
* <code>INSERT SET a = x, b = y</code> syntax.
|
||||
*/
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Transition(
|
||||
name = "WHEN NOT MATCHED THEN INSERT"
|
||||
)
|
||||
MergeNotMatchedSetStep<R> whenNotMatchedThenInsert();
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
|
||||
/**
|
||||
* Add the <code>WHEN NOT MATCHED THEN INSERT</code> clause to the
|
||||
* <code>MERGE</code> statement
|
||||
*/
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
<«TN(degree)»> MergeNotMatchedValuesStep«degree»<R, «TN(degree)»> whenNotMatchedThenInsert(«Field_TN_fieldn(degree)»);
|
||||
«ENDFOR»
|
||||
|
||||
/**
|
||||
* Add the <code>WHEN NOT MATCHED THEN INSERT</code> clause to the
|
||||
* <code>MERGE</code> statement
|
||||
*/
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Transition(
|
||||
name = "WHEN NOT MATCHED THEN INSERT",
|
||||
args = "Field+"
|
||||
)
|
||||
MergeNotMatchedValuesStepN<R> whenNotMatchedThenInsert(Field<?>... fields);
|
||||
|
||||
/**
|
||||
* Add the <code>WHEN MATCHED THEN UPDATE</code> clause to the
|
||||
* <code>MERGE</code> statement
|
||||
*/
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
@Transition(
|
||||
name = "WHEN NOT MATCHED THEN INSERT",
|
||||
args = "Field+"
|
||||
)
|
||||
MergeNotMatchedValuesStepN<R> whenNotMatchedThenInsert(Collection<? extends Field<?>> fields);
|
||||
}
|
||||
''');
|
||||
|
||||
write("org.jooq.MergeNotMatchedStep", out);
|
||||
}
|
||||
|
||||
def generateMergeNotMatchedValuesStep() {
|
||||
for (degree : (1..Constants::MAX_ROW_DEGREE)) {
|
||||
val out = new StringBuilder();
|
||||
|
||||
out.append('''
|
||||
«classHeader»
|
||||
package org.jooq;
|
||||
|
||||
import static org.jooq.SQLDialect.CUBRID;
|
||||
import static org.jooq.SQLDialect.DB2;
|
||||
import static org.jooq.SQLDialect.HSQLDB;
|
||||
import static org.jooq.SQLDialect.ORACLE;
|
||||
import static org.jooq.SQLDialect.SQLSERVER;
|
||||
import static org.jooq.SQLDialect.SYBASE;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import javax.annotation.Generated;
|
||||
|
||||
/**
|
||||
* This type is used for the {@link Merge}'s DSL API.
|
||||
* <p>
|
||||
* Example: <code><pre>
|
||||
* DSLContext create = DSL.using(configuration);
|
||||
*
|
||||
* create.mergeInto(table)
|
||||
* .using(select)
|
||||
* .on(condition)
|
||||
* .whenMatchedThenUpdate()
|
||||
* .set(field1, value1)
|
||||
* .set(field2, value2)
|
||||
* .whenNotMatchedThenInsert(field1, field2)
|
||||
* .values(value1, value2)
|
||||
* .execute();
|
||||
* </pre></code>
|
||||
*
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
«generatedAnnotation»
|
||||
public interface MergeNotMatchedValuesStep«degree»<R extends Record, «TN(degree)»> {
|
||||
|
||||
/**
|
||||
* Set <code>VALUES</code> for <code>INSERT</code> in the <code>MERGE</code>
|
||||
* statement's <code>WHEN NOT MATCHED THEN INSERT</code> clause.
|
||||
*/
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeNotMatchedWhereStep<R> values(«TN_XXXn(degree, "value")»);
|
||||
|
||||
/**
|
||||
* Set <code>VALUES</code> for <code>INSERT</code> in the <code>MERGE</code>
|
||||
* statement's <code>WHEN NOT MATCHED THEN INSERT</code> clause.
|
||||
*/
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeNotMatchedWhereStep<R> values(«Field_TN_XXXn(degree, "value")»);
|
||||
|
||||
/**
|
||||
* Set <code>VALUES</code> for <code>INSERT</code> in the <code>MERGE</code>
|
||||
* statement's <code>WHEN NOT MATCHED THEN INSERT</code> clause.
|
||||
*/
|
||||
@Support({ CUBRID, DB2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeNotMatchedWhereStep<R> values(Collection<?> values);
|
||||
}
|
||||
''');
|
||||
|
||||
write("org.jooq.MergeNotMatchedValuesStep" + degree, out);
|
||||
}
|
||||
}
|
||||
|
||||
def generateMergeKeyStep() {
|
||||
for (degree : (1..Constants::MAX_ROW_DEGREE)) {
|
||||
val out = new StringBuilder();
|
||||
|
||||
out.append('''
|
||||
«classHeader»
|
||||
package org.jooq;
|
||||
|
||||
import static org.jooq.SQLDialect.CUBRID;
|
||||
import static org.jooq.SQLDialect.DB2;
|
||||
import static org.jooq.SQLDialect.H2;
|
||||
import static org.jooq.SQLDialect.HSQLDB;
|
||||
import static org.jooq.SQLDialect.ORACLE;
|
||||
import static org.jooq.SQLDialect.SQLSERVER;
|
||||
import static org.jooq.SQLDialect.SYBASE;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import javax.annotation.Generated;
|
||||
|
||||
/**
|
||||
* This type is used for the H2-specific variant of the {@link Merge}'s DSL API.
|
||||
* <p>
|
||||
* Example: <code><pre>
|
||||
* DSLContext create = DSL.using(configuration);
|
||||
*
|
||||
* create.mergeInto(table, «field1_field2_fieldn(degree)»)
|
||||
* .key(id)
|
||||
* .values(«XXX1_XXX2_XXXn(degree, "value")»)
|
||||
* .execute();
|
||||
* </pre></code>
|
||||
*
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
«generatedAnnotation»
|
||||
public interface MergeKeyStep«degree»<R extends Record, «TN(degree)»> extends MergeValuesStep«degree»<R, «TN(degree)»> {
|
||||
|
||||
/**
|
||||
* Specify an optional <code>KEY</code> clause.
|
||||
* <p>
|
||||
* Use this optional clause in order to override using the underlying
|
||||
* <code>PRIMARY KEY</code>.
|
||||
*/
|
||||
@Support({ CUBRID, DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeValuesStep«degree»<R, «TN(degree)»> key(Field<?>... keys);
|
||||
|
||||
/**
|
||||
* Specify an optional <code>KEY</code> clause.
|
||||
* <p>
|
||||
* Use this optional clause in order to override using the underlying
|
||||
* <code>PRIMARY KEY</code>.
|
||||
*/
|
||||
@Support({ CUBRID, DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
MergeValuesStep«degree»<R, «TN(degree)»> key(Collection<? extends Field<?>> keys);
|
||||
}
|
||||
''');
|
||||
|
||||
write("org.jooq.MergeKeyStep" + degree, out);
|
||||
}
|
||||
}
|
||||
|
||||
def generateMergeValuesStep() {
|
||||
for (degree : (1..Constants::MAX_ROW_DEGREE)) {
|
||||
val out = new StringBuilder();
|
||||
|
||||
out.append('''
|
||||
«classHeader»
|
||||
package org.jooq;
|
||||
|
||||
import static org.jooq.SQLDialect.CUBRID;
|
||||
import static org.jooq.SQLDialect.DB2;
|
||||
import static org.jooq.SQLDialect.H2;
|
||||
import static org.jooq.SQLDialect.HSQLDB;
|
||||
import static org.jooq.SQLDialect.ORACLE;
|
||||
import static org.jooq.SQLDialect.SQLSERVER;
|
||||
import static org.jooq.SQLDialect.SYBASE;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import javax.annotation.Generated;
|
||||
|
||||
/**
|
||||
* This type is used for the H2-specific variant of the {@link Merge}'s DSL API.
|
||||
* <p>
|
||||
* Example: <code><pre>
|
||||
* using(configuration)
|
||||
* .mergeInto(table, «field1_field2_fieldn(degree)»)
|
||||
* .key(id)
|
||||
* .values(«XXX1_XXX2_XXXn(degree, "value")»)
|
||||
* .execute();
|
||||
* </pre></code>
|
||||
*
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
«generatedAnnotation»
|
||||
public interface MergeValuesStep«degree»<R extends Record, «TN(degree)»> {
|
||||
|
||||
/**
|
||||
* Specify a <code>VALUES</code> clause
|
||||
*/
|
||||
@Support({ CUBRID, DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
Merge<R> values(«TN_XXXn(degree, "value")»);
|
||||
|
||||
/**
|
||||
* Specify a <code>VALUES</code> clause
|
||||
*/
|
||||
@Support({ CUBRID, DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
Merge<R> values(«Field_TN_XXXn(degree, "value")»);
|
||||
|
||||
/**
|
||||
* Specify a <code>VALUES</code> clause
|
||||
*/
|
||||
@Support({ CUBRID, DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
Merge<R> values(Collection<?> values);
|
||||
|
||||
/**
|
||||
* Use a <code>SELECT</code> statement as the source of values for the
|
||||
* <code>MERGE</code> statement
|
||||
* <p>
|
||||
* This variant of the <code>MERGE .. SELECT</code> statement expects a
|
||||
* select returning exactly as many fields as specified previously in the
|
||||
* <code>INTO</code> clause:
|
||||
* {@link DSLContext#mergeInto(Table, «(1..degree).join(', ', [e | 'Field'])»)}
|
||||
*/
|
||||
@Support({ CUBRID, DB2, H2, HSQLDB, ORACLE, SQLSERVER, SYBASE })
|
||||
Merge<R> select(Select<? extends Record«degree»<«TN(degree)»>> select);
|
||||
}
|
||||
''');
|
||||
|
||||
write("org.jooq.MergeValuesStep" + degree, out);
|
||||
}
|
||||
}
|
||||
|
||||
def generateMergeImplImplements() {
|
||||
val outKeyStep = new StringBuilder();
|
||||
val outNotMatchedValuesStep = new StringBuilder();
|
||||
|
||||
outKeyStep.append('''
|
||||
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
MergeKeyStep«degree»<R, «TN(degree)»>,
|
||||
«ENDFOR»
|
||||
''')
|
||||
|
||||
outNotMatchedValuesStep.append('''
|
||||
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
MergeNotMatchedValuesStep«degree»<R, «TN(degree)»>,
|
||||
«ENDFOR»
|
||||
''')
|
||||
|
||||
insert("org.jooq.impl.MergeImpl", outKeyStep, "implementsKeyStep");
|
||||
insert("org.jooq.impl.MergeImpl", outNotMatchedValuesStep, "implementsNotMatchedValuesStep");
|
||||
}
|
||||
|
||||
def generateMergeImplValues() {
|
||||
val out = new StringBuilder();
|
||||
|
||||
out.append('''
|
||||
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
@Override
|
||||
public final MergeImpl values(«TN_XXXn(degree, "value")») {
|
||||
return values(new Object[] { «XXXn(degree, "value")» });
|
||||
}
|
||||
|
||||
«ENDFOR»
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
|
||||
@Override
|
||||
public final MergeImpl values(«Field_TN_XXXn(degree, "value")») {
|
||||
return values(new Field[] { «XXXn(degree, "value")» });
|
||||
}
|
||||
«ENDFOR»
|
||||
''')
|
||||
|
||||
insert("org.jooq.impl.MergeImpl", out, "values");
|
||||
}
|
||||
|
||||
def generateMergeImplWhenNotMatchedThenInsert() {
|
||||
val out = new StringBuilder();
|
||||
|
||||
out.append('''
|
||||
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
@Override
|
||||
@SuppressWarnings("hiding")
|
||||
public final <«TN(degree)»> MergeImpl whenNotMatchedThenInsert(«Field_TN_fieldn(degree)») {
|
||||
return whenNotMatchedThenInsert(new Field[] { «fieldn(degree)» });
|
||||
}
|
||||
|
||||
«ENDFOR»
|
||||
''')
|
||||
|
||||
insert("org.jooq.impl.MergeImpl", out, "whenNotMatchedThenInsert");
|
||||
}
|
||||
}
|
||||
@ -1,208 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) 2009-2013, Data Geekery GmbH (http://www.datageekery.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This work is dual-licensed
|
||||
* - under the Apache Software License 2.0 (the "ASL")
|
||||
* - under the jOOQ License and Maintenance Agreement (the "jOOQ License")
|
||||
* =============================================================================
|
||||
* You may choose which license applies to you:
|
||||
*
|
||||
* - If you're using this work with Open Source databases, you may choose
|
||||
* either ASL or jOOQ License.
|
||||
* - If you're using this work with at least one commercial database, you must
|
||||
* choose jOOQ License
|
||||
*
|
||||
* For more information, please visit http://www.jooq.org/licenses
|
||||
*
|
||||
* Apache Software License 2.0:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* jOOQ License and Maintenance Agreement:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Data Geekery grants the Customer the non-exclusive, timely limited and
|
||||
* non-transferable license to install and use the Software under the terms of
|
||||
* the jOOQ License and Maintenance Agreement.
|
||||
*
|
||||
* This library is distributed with a LIMITED WARRANTY. See the jOOQ License
|
||||
* and Maintenance Agreement for more details: http://www.jooq.org/licensing
|
||||
*/
|
||||
package org.jooq.xtend
|
||||
|
||||
import org.jooq.Constants
|
||||
|
||||
/**
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
class Records extends Generators {
|
||||
|
||||
def static void main(String[] args) {
|
||||
val records = new Records();
|
||||
records.generateRecords();
|
||||
records.generateRecordImpl();
|
||||
}
|
||||
|
||||
def generateRecords() {
|
||||
for (degree : (1..Constants::MAX_ROW_DEGREE)) {
|
||||
val out = new StringBuilder();
|
||||
|
||||
out.append('''
|
||||
«classHeader»
|
||||
package org.jooq;
|
||||
|
||||
import javax.annotation.Generated;
|
||||
|
||||
/**
|
||||
* A model type for a records with degree <code>«degree»</code>
|
||||
*
|
||||
* @see Row«degree»
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
«generatedAnnotation»
|
||||
public interface Record«degree»<«TN(degree)»> extends Record {
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Row value expressions
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Get this record's fields as a {@link Row«degree»}
|
||||
*/
|
||||
@Override
|
||||
Row«degree»<«TN(degree)»> fieldsRow();
|
||||
|
||||
/**
|
||||
* Get this record's values as a {@link Row«degree»}
|
||||
*/
|
||||
@Override
|
||||
Row«degree»<«TN(degree)»> valuesRow();
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Field accessors
|
||||
// ------------------------------------------------------------------------
|
||||
«FOR d : (1..degree)»
|
||||
|
||||
/**
|
||||
* Get the «first(d)» field
|
||||
*/
|
||||
Field<T«d»> field«d»();
|
||||
«ENDFOR»
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Value accessors
|
||||
// ------------------------------------------------------------------------
|
||||
«FOR d : (1..degree)»
|
||||
|
||||
/**
|
||||
* Get the «first(d)» value
|
||||
*/
|
||||
T«d» value«d»();
|
||||
«ENDFOR»
|
||||
|
||||
}
|
||||
''');
|
||||
|
||||
write("org.jooq.Record" + degree, out);
|
||||
}
|
||||
}
|
||||
|
||||
def generateRecordImpl() {
|
||||
val out = new StringBuilder();
|
||||
|
||||
out.append('''
|
||||
«classHeader»
|
||||
package org.jooq.impl;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import javax.annotation.Generated;
|
||||
|
||||
import org.jooq.Field;
|
||||
import org.jooq.Record;
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
import org.jooq.Record«degree»;
|
||||
«ENDFOR»
|
||||
|
||||
/**
|
||||
* A general purpose record, typically used for ad-hoc types.
|
||||
* <p>
|
||||
* This type implements both the general-purpose, type-unsafe {@link Record}
|
||||
* interface, as well as the more specific, type-safe {@link Record1},
|
||||
* {@link Record2} through {@link Record«Constants::MAX_ROW_DEGREE»} interfaces
|
||||
*
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
«generatedAnnotation»
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
class RecordImpl<«TN(Constants::MAX_ROW_DEGREE)»> extends AbstractRecord
|
||||
implements
|
||||
|
||||
// This record implementation implements all record types. Type-safety is
|
||||
// being checked through the type-safe API. No need for further checks here
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE) SEPARATOR ','»
|
||||
Record«degree»<«TN(degree)»>«IF degree == Constants::MAX_ROW_DEGREE» {«ENDIF»
|
||||
«ENDFOR»
|
||||
|
||||
/**
|
||||
* Generated UID
|
||||
*/
|
||||
private static final long serialVersionUID = -2201346180421463830L;
|
||||
|
||||
/**
|
||||
* Create a new general purpose record
|
||||
*/
|
||||
public RecordImpl(Field<?>... fields) {
|
||||
super(fields);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new general purpose record
|
||||
*/
|
||||
public RecordImpl(Collection<? extends Field<?>> fields) {
|
||||
super(fields);
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// XXX: Type-safe Record APIs
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
@Override
|
||||
public RowImpl<«TN(Constants::MAX_ROW_DEGREE)»> fieldsRow() {
|
||||
return fields;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final RowImpl<«TN(Constants::MAX_ROW_DEGREE)»> valuesRow() {
|
||||
return new RowImpl(Utils.fields(intoArray(), fields.fields()));
|
||||
}
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
|
||||
@Override
|
||||
public final Field<T«degree»> field«degree»() {
|
||||
return fields.field(«degree - 1»);
|
||||
}
|
||||
«ENDFOR»
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
|
||||
@Override
|
||||
public final T«degree» value«degree»() {
|
||||
return (T«degree») getValue(«degree - 1»);
|
||||
}
|
||||
«ENDFOR»
|
||||
}
|
||||
''');
|
||||
|
||||
write("org.jooq.impl.RecordImpl", out);
|
||||
}
|
||||
}
|
||||
@ -1,212 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) 2009-2013, Data Geekery GmbH (http://www.datageekery.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This work is dual-licensed
|
||||
* - under the Apache Software License 2.0 (the "ASL")
|
||||
* - under the jOOQ License and Maintenance Agreement (the "jOOQ License")
|
||||
* =============================================================================
|
||||
* You may choose which license applies to you:
|
||||
*
|
||||
* - If you're using this work with Open Source databases, you may choose
|
||||
* either ASL or jOOQ License.
|
||||
* - If you're using this work with at least one commercial database, you must
|
||||
* choose jOOQ License
|
||||
*
|
||||
* For more information, please visit http://www.jooq.org/licenses
|
||||
*
|
||||
* Apache Software License 2.0:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* jOOQ License and Maintenance Agreement:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Data Geekery grants the Customer the non-exclusive, timely limited and
|
||||
* non-transferable license to install and use the Software under the terms of
|
||||
* the jOOQ License and Maintenance Agreement.
|
||||
*
|
||||
* This library is distributed with a LIMITED WARRANTY. See the jOOQ License
|
||||
* and Maintenance Agreement for more details: http://www.jooq.org/licensing
|
||||
*/
|
||||
package org.jooq.xtend
|
||||
|
||||
import org.jooq.Constants
|
||||
|
||||
/**
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
class UpdateDSL extends Generators {
|
||||
|
||||
def static void main(String[] args) {
|
||||
val update = new UpdateDSL();
|
||||
update.generateUpdateQuery();
|
||||
update.generateUpdateQueryImpl();
|
||||
update.generateUpdateSetFirstStep();
|
||||
update.generateUpdateImpl();
|
||||
}
|
||||
|
||||
def generateUpdateQuery() {
|
||||
val out = new StringBuilder();
|
||||
|
||||
out.append('''
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
|
||||
/**
|
||||
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
|
||||
*/
|
||||
«generatedMethod»
|
||||
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE, POSTGRES })
|
||||
<«TN(degree)»> void addValues(Row«degree»<«TN(degree)»> row, Row«degree»<«TN(degree)»> value);
|
||||
«ENDFOR»
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
|
||||
/**
|
||||
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
|
||||
*/
|
||||
«generatedMethod»
|
||||
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE })
|
||||
<«TN(degree)»> void addValues(Row«degree»<«TN(degree)»> row, Select<? extends Record«degree»<«TN(degree)»>> select);
|
||||
«ENDFOR»
|
||||
''');
|
||||
|
||||
insert("org.jooq.UpdateQuery", out, "addValues");
|
||||
}
|
||||
|
||||
def generateUpdateQueryImpl() {
|
||||
val out = new StringBuilder();
|
||||
|
||||
out.append('''
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
|
||||
«generatedMethod»
|
||||
@Override
|
||||
public final <«TN(degree)»> void addValues(Row«degree»<«TN(degree)»> row, Row«degree»<«TN(degree)»> value) {
|
||||
addValues0(row, value);
|
||||
}
|
||||
«ENDFOR»
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
|
||||
«generatedMethod»
|
||||
@Override
|
||||
public final <«TN(degree)»> void addValues(Row«degree»<«TN(degree)»> row, Select<? extends Record«degree»<«TN(degree)»>> select) {
|
||||
addValues0(row, select);
|
||||
}
|
||||
«ENDFOR»
|
||||
''');
|
||||
|
||||
insert("org.jooq.impl.UpdateQueryImpl", out, "addValues");
|
||||
}
|
||||
|
||||
def generateUpdateSetFirstStep() {
|
||||
val out = new StringBuilder();
|
||||
|
||||
out.append('''
|
||||
«classHeader»
|
||||
package org.jooq;
|
||||
|
||||
import static org.jooq.SQLDialect.DB2;
|
||||
import static org.jooq.SQLDialect.H2;
|
||||
import static org.jooq.SQLDialect.HSQLDB;
|
||||
import static org.jooq.SQLDialect.INGRES;
|
||||
import static org.jooq.SQLDialect.ORACLE;
|
||||
import static org.jooq.SQLDialect.POSTGRES;
|
||||
|
||||
import javax.annotation.Generated;
|
||||
|
||||
import org.jooq.api.annotation.State;
|
||||
import org.jooq.api.annotation.Transition;
|
||||
|
||||
/**
|
||||
* This type is used for the {@link Update}'s DSL API.
|
||||
* <p>
|
||||
* Example: <code><pre>
|
||||
* using(configuration)
|
||||
* .update(table)
|
||||
* .set(field1, value1)
|
||||
* .set(field2, value2)
|
||||
* .where(field1.greaterThan(100))
|
||||
* .execute();
|
||||
* </pre></code>
|
||||
*
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
«generatedAnnotation»
|
||||
@State
|
||||
public interface UpdateSetFirstStep<R extends Record> extends UpdateSetStep<R> {
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
|
||||
/**
|
||||
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
|
||||
* <p>
|
||||
* This is simulated using a subquery for the <code>value</code>, where row
|
||||
* value expressions aren't supported.
|
||||
*/
|
||||
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE, POSTGRES })
|
||||
@Transition(
|
||||
name = "SET",
|
||||
args = {
|
||||
"Row",
|
||||
"Row"
|
||||
}
|
||||
)
|
||||
<«TN(degree)»> UpdateWhereStep<R> set(Row«degree»<«TN(degree)»> row, Row«degree»<«TN(degree)»> value);
|
||||
«ENDFOR»
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
|
||||
/**
|
||||
* Specify a multi-column set clause for the <code>UPDATE</code> statement.
|
||||
*/
|
||||
@Support({ DB2, H2, HSQLDB, INGRES, ORACLE })
|
||||
@Transition(
|
||||
name = "SET",
|
||||
args = {
|
||||
"Row",
|
||||
"Select"
|
||||
}
|
||||
)
|
||||
<«TN(degree)»> UpdateWhereStep<R> set(Row«degree»<«TN(degree)»> row, Select<? extends Record«degree»<«TN(degree)»>> select);
|
||||
«ENDFOR»
|
||||
|
||||
}
|
||||
''');
|
||||
|
||||
write("org.jooq.UpdateSetFirstStep", out);
|
||||
}
|
||||
|
||||
def generateUpdateImpl() {
|
||||
val out = new StringBuilder();
|
||||
|
||||
out.append('''
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
|
||||
«generatedMethod»
|
||||
@Override
|
||||
public final <«TN(degree)»> UpdateWhereStep<R> set(Row«degree»<«TN(degree)»> row, Row«degree»<«TN(degree)»> value) {
|
||||
getDelegate().addValues(row, value);
|
||||
return this;
|
||||
}
|
||||
«ENDFOR»
|
||||
«FOR degree : (1..Constants::MAX_ROW_DEGREE)»
|
||||
|
||||
«generatedMethod»
|
||||
@Override
|
||||
public final <«TN(degree)»> UpdateWhereStep<R> set(Row«degree»<«TN(degree)»> row, Select<? extends Record«degree»<«TN(degree)»>> select) {
|
||||
getDelegate().addValues(row, select);
|
||||
return this;
|
||||
}
|
||||
«ENDFOR»
|
||||
''');
|
||||
|
||||
insert("org.jooq.impl.UpdateImpl", out, "set");
|
||||
}
|
||||
}
|
||||
@ -1,49 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) 2009-2013, Data Geekery GmbH (http://www.datageekery.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This work is dual-licensed
|
||||
* - under the Apache Software License 2.0 (the "ASL")
|
||||
* - under the jOOQ License and Maintenance Agreement (the "jOOQ License")
|
||||
* =============================================================================
|
||||
* You may choose which license applies to you:
|
||||
*
|
||||
* - If you're using this work with Open Source databases, you may choose
|
||||
* either ASL or jOOQ License.
|
||||
* - If you're using this work with at least one commercial database, you must
|
||||
* choose jOOQ License
|
||||
*
|
||||
* For more information, please visit http://www.jooq.org/licenses
|
||||
*
|
||||
* Apache Software License 2.0:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* jOOQ License and Maintenance Agreement:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Data Geekery grants the Customer the non-exclusive, timely limited and
|
||||
* non-transferable license to install and use the Software under the terms of
|
||||
* the jOOQ License and Maintenance Agreement.
|
||||
*
|
||||
* This library is distributed with a LIMITED WARRANTY. See the jOOQ License
|
||||
* and Maintenance Agreement for more details: http://www.jooq.org/licensing
|
||||
*/
|
||||
package org.jooq.xtend;
|
||||
|
||||
public class Util {
|
||||
|
||||
public static byte[] newByteArray(long length) {
|
||||
// Xtend seems incapable of doing this:
|
||||
return new byte[(int) length];
|
||||
}
|
||||
}
|
||||
@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" output="target/classes" path="src/main/java"/>
|
||||
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
|
||||
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
|
||||
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
|
||||
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
||||
6
jOOQ-website/.gitignore
vendored
@ -1,6 +0,0 @@
|
||||
/target
|
||||
/manual
|
||||
/manual-pdf
|
||||
/manual-single-page
|
||||
/doc
|
||||
/access.php
|
||||
@ -1,49 +0,0 @@
|
||||
################################## Errors ######################################
|
||||
#ErrorDocument 301 /e/301-moved_permanently.html
|
||||
#ErrorDocument 302 /e/302-moved_temporarily.html
|
||||
#ErrorDocument 303 /e/303-see_other.html
|
||||
#ErrorDocument 400 /e/400-bad_request.html
|
||||
ErrorDocument 401 /e/401-authorization_required.html
|
||||
#ErrorDocument 402 /e/402-payment_required.html
|
||||
ErrorDocument 403 /e/403-forbidden.html
|
||||
ErrorDocument 404 /e/404-not_found.html
|
||||
#ErrorDocument 405 /e/405-method_not_allowed.html
|
||||
#ErrorDocument 406 /e/406-not_acceptable.html
|
||||
#ErrorDocument 407 /e/407-proxy_authentication_required.html
|
||||
ErrorDocument 408 /e/408-request_timed_out.html
|
||||
#ErrorDocument 409 /e/409-conflicting_request.html
|
||||
#ErrorDocument 410 /e/410-gone.html
|
||||
#ErrorDocument 411 /e/411-content_length_required.html
|
||||
#ErrorDocument 412 /e/412-precondition_failed.html
|
||||
#ErrorDocument 413 /e/413-request_entity_too_long.html
|
||||
#ErrorDocument 414 /e/414-request_uri_too_long.html
|
||||
#ErrorDocument 415 /e/415-unsupported_media_type.html
|
||||
ErrorDocument 500 /e/500-internal_server_error.html
|
||||
#ErrorDocument 501 /e/501-not_implemented.html
|
||||
#ErrorDocument 502 /e/502-bad_gateway.html
|
||||
ErrorDocument 503 /e/503-service_unavailable.html
|
||||
#ErrorDocument 504 /e/504-gateway_timeout.html
|
||||
#ErrorDocument 505 /e/505-http_version_not_supported.html
|
||||
################################################################################
|
||||
|
||||
#Create uniform manual URLs, also for 2.4 manual
|
||||
RewriteEngine On
|
||||
RewriteBase /
|
||||
RewriteRule ^manual(.*)$ doc/2.4/manual$1 [L,R=301]
|
||||
RewriteRule ^doc/latest/manual([^/]*)/(.*)$ doc/3.0/manual$1/$2 [L,R=307]
|
||||
|
||||
RewriteCond %{SCRIPT_FILENAME} !-d
|
||||
RewriteCond %{SCRIPT_FILENAME} !-f
|
||||
|
||||
# Create vanity URLS, mapping non-existing directories to equivalent .php files
|
||||
RewriteRule ^.*?$ $0.php
|
||||
|
||||
# Rewrite datageekery.com to subdirectory
|
||||
RewriteCond %{REQUEST_URI} !^/datageekery.com/
|
||||
RewriteCond %{HTTP_HOST} ^(www\.)?datageekery.com [NC]
|
||||
RewriteRule ^(.*)$ /datageekery.com/$1
|
||||
|
||||
<Files users.csv>
|
||||
Order Allow,Deny
|
||||
Deny from all
|
||||
</Files>
|
||||
@ -1,29 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>jOOQ-website</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.maven.ide.eclipse.maven2Builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.maven.ide.eclipse.maven2Nature</nature>
|
||||
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@ -1,382 +0,0 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
|
||||
org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
|
||||
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
|
||||
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
|
||||
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=1.6
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
org.eclipse.jdt.core.compiler.doc.comment.support=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
|
||||
org.eclipse.jdt.core.compiler.problem.deadCode=warning
|
||||
org.eclipse.jdt.core.compiler.problem.deprecation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
|
||||
org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
|
||||
org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
|
||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
|
||||
org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
|
||||
org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
|
||||
org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
|
||||
org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
|
||||
org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=all_standard_tags
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
|
||||
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
|
||||
org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
|
||||
org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
|
||||
org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
|
||||
org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
|
||||
org.eclipse.jdt.core.compiler.problem.nullReference=error
|
||||
org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
|
||||
org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
|
||||
org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
|
||||
org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
|
||||
org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
|
||||
org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
|
||||
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
|
||||
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unclosedCloseable=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedImport=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
|
||||
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
|
||||
org.eclipse.jdt.core.compiler.source=1.6
|
||||
org.eclipse.jdt.core.formatter.align_type_members_on_columns=true
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
|
||||
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=49
|
||||
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
|
||||
org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_after_package=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_field=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_method=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_package=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
|
||||
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_block_comments=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_header=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_html=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_line_comments=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_source_code=true
|
||||
org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
|
||||
org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
|
||||
org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
|
||||
org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
|
||||
org.eclipse.jdt.core.formatter.comment.line_length=80
|
||||
org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
|
||||
org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
|
||||
org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
|
||||
org.eclipse.jdt.core.formatter.compact_else_if=true
|
||||
org.eclipse.jdt.core.formatter.continuation_indentation=1
|
||||
org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1
|
||||
org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
|
||||
org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
|
||||
org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
|
||||
org.eclipse.jdt.core.formatter.indent_empty_lines=false
|
||||
org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
|
||||
org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
|
||||
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
|
||||
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
|
||||
org.eclipse.jdt.core.formatter.indentation.size=4
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.join_lines_in_comments=true
|
||||
org.eclipse.jdt.core.formatter.join_wrapped_lines=true
|
||||
org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.lineSplit=120
|
||||
org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
|
||||
org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
|
||||
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
|
||||
org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
|
||||
org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
|
||||
org.eclipse.jdt.core.formatter.tabulation.char=space
|
||||
org.eclipse.jdt.core.formatter.tabulation.size=4
|
||||
org.eclipse.jdt.core.formatter.use_on_off_tags=false
|
||||
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
|
||||
org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
|
||||
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
|
||||
@ -1,4 +0,0 @@
|
||||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
resolveWorkspaceProjects=true
|
||||
version=1
|
||||
@ -1,8 +0,0 @@
|
||||
#Sun Apr 10 10:03:42 CEST 2011
|
||||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
fullBuildGoals=process-test-resources
|
||||
resolveWorkspaceProjects=true
|
||||
resourceFilterGoals=process-resources resources\:testResources
|
||||
skipCompilerPlugin=true
|
||||
version=1
|
||||
@ -1,74 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Super-simple, minimum abstraction MailChimp API v2 wrapper
|
||||
*
|
||||
* Requires curl (I know, right?)
|
||||
* This probably has more comments than code.
|
||||
*
|
||||
* @author Drew McLellan <drew.mclellan@gmail.com>
|
||||
* @version 1.0
|
||||
*/
|
||||
class MailChimp
|
||||
{
|
||||
private $api_key;
|
||||
private $api_endpoint = 'https://<dc>.api.mailchimp.com/2.0/';
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Create a new instance
|
||||
* @param string $api_key Your MailChimp API key
|
||||
*/
|
||||
function __construct($api_key)
|
||||
{
|
||||
$this->api_key = $api_key;
|
||||
list(, $datacentre) = explode('-', $api_key);
|
||||
$this->api_endpoint = str_replace('<dc>', $datacentre, $this->api_endpoint);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Call an API method. Every request needs the API key, so that is added automatically -- you don't need to pass it in.
|
||||
* @param string $method The API method to call, e.g. 'lists/list'
|
||||
* @param array $args An array of arguments to pass to the method. Will be json-encoded for you.
|
||||
* @return array Associative array of json decoded API response.
|
||||
*/
|
||||
public function call($method, $args=array())
|
||||
{
|
||||
return $this->_raw_request($method, $args);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Performs the underlying HTTP request. Not very exciting
|
||||
* @param string $method The API method to be called
|
||||
* @param array $args Assoc array of parameters to be passed
|
||||
* @return array Assoc array of decoded result
|
||||
*/
|
||||
private function _raw_request($method, $args=array())
|
||||
{
|
||||
$args['apikey'] = $this->api_key;
|
||||
$url = $this->api_endpoint.'/'.$method.'.json';
|
||||
|
||||
$ch = curl_init();
|
||||
|
||||
curl_setopt($ch, CURLOPT_URL, $url);
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
|
||||
curl_setopt($ch, CURLOPT_POST, true);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($args));
|
||||
$result = curl_exec($ch);
|
||||
|
||||
$err = fopen('error.log', 'a');
|
||||
fwrite($err, curl_error($ch));
|
||||
fclose($err);
|
||||
|
||||
curl_close($ch);
|
||||
return $result ? json_decode($result, true) : false;
|
||||
}
|
||||
}
|
||||
@ -1,297 +0,0 @@
|
||||
<?php
|
||||
require 'frame.php';
|
||||
function getH1() {
|
||||
return 'Contribute to the jOOQ community';
|
||||
}
|
||||
function getActiveMenu() {
|
||||
return "community";
|
||||
}
|
||||
function printContent() {
|
||||
global $root;
|
||||
?>
|
||||
|
||||
<h2>jOOQ lives from your feedback and support</h2>
|
||||
<p>
|
||||
jOOQ is a very interactive project. It lives from your feedback and support.
|
||||
There are many ways how you can contribute to the jOOQ community.
|
||||
</p>
|
||||
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td valign="top" width="50%" style="padding-right: 10px">
|
||||
<h2>The technical community</h2>
|
||||
<h3>Hall of Fame</h3>
|
||||
<p>
|
||||
Passionate contributors have made jOOQ what it is. Here's a list of contributors
|
||||
worth mentioning (in alphabetical order)
|
||||
</p>
|
||||
<ul>
|
||||
<li>Aaron Digulla: jOOQ-codegen cleanup</li>
|
||||
<li>Ben Manes: Gradle integration</li>
|
||||
<li>Christopher Deckers: jOOQ-Console contribution</li>
|
||||
<li>Christopher Klewes: Maven integration</li>
|
||||
<li>Ed Schaller: Improvements to unsigned data types (jOOU)</li>
|
||||
<li>Espen Stromsnes: DB2, H2, Sybase, and HSQLDB integrations</li>
|
||||
<li>Florian Adler: jOOQ-minuteproject contribution</li>
|
||||
<li>Ivan Dugic: Various GitHub ticket contributions</li>
|
||||
<li>Lukas Eder: Project lead</li>
|
||||
<li>Rakesh Waghela: Spreading the news</li>
|
||||
<li>Robin Stocker: Git, GitHub, and Scala support</li>
|
||||
<li>Sander Plas: jOOQ-codegen-maven, jOOQ-wicket contribution</li>
|
||||
<li>Sergey Epik: jOOQ-spring contribution</li>
|
||||
<li>Sugiharto Lim: Firebird integration</li>
|
||||
<li>Vladislav "FractalizeR" Rastrusny: MySQL integration feedback</li>
|
||||
</ul>
|
||||
|
||||
<h3>You can contribute too!</h3>
|
||||
<p>
|
||||
The easiest way to contribute is by providing feedback. Tell me, tell us, tell the world!
|
||||
How to do it? Telling us:<br/>
|
||||
<a href="http://groups.google.com/group/jooq-user">The jOOQ User Group</a><br/><br/>
|
||||
Telling the world:<br/>
|
||||
<a href="http://stackoverflow.com/questions/tagged/jooq" title="ask questions about jOOQ on Stack Overflow">http://stackoverflow.com/questions/tagged/jooq</a><br/><br/>
|
||||
... or blog about jOOQ. Write articles! Advertise jOOQ!
|
||||
</p>
|
||||
|
||||
|
||||
<h3>Contributing code</h3>
|
||||
<p>... or contribute code! If you want to share code, please follow these instructions</p>
|
||||
<ul>
|
||||
<li>If you haven't already, download Eclipse (Indigo or Juno) from <a href="http://www.eclipse.org/">http://www.eclipse.org/</a>. While you could develop with other IDEs as well, you wouldn't profit from all the installed launch configurations, etc.</li>
|
||||
<li>Be sure that you have <a href="http://www.eclipse.org/egit/">http://www.eclipse.org/egit/</a> installed in your Eclipse distribution</li>
|
||||
<li>Check out the codebase from GitHub: <a href="http://github.com/jOOQ/jOOQ" title="jOOQ GitHub repository">git@github.com:jOOQ/jOOQ.git</a></li>
|
||||
<li>Import the jOOQ projects into <a href="http://www.eclipse.org/" title="jOOQ developers use Eclipse">Eclipse</a></li>
|
||||
<li>If you haven't already, get <a href="http://m2eclipse.sonatype.org/sites/m2e/">M2E</a>, the Eclipse Maven plugin to build jOOQ with Maven in Eclipse (The one from Sonatype, NOT the one from Eclipse)</li>
|
||||
<li>Use the Eclipse formatting settings that have been checked in with the projects. Keeps the code <a href="http://www.extremeprogramming.org/rules/standards.html">nice and clean</a>. Your code should not change (not much), if formatted with Ctrl-Shift-F. But don't format jOOQ DSL query code!</li>
|
||||
<li>Send me your changes directly to the <a href="http://groups.google.com/group/jooq-user" title="the jOOQ user group">user group</a> or in a <a href="https://github.com/jOOQ/jOOQ/issues/new">GitHub ticket</a>.</li>
|
||||
<li>Send your changes as an Eclipse-compatible .patch file (or the sum of the modified Java classes). Ideally, the .patch file can be applied to the latest version of jOOQ on the SVN trunk.</li>
|
||||
<li>I'll review, audit your changes and it goes into the repository with the next release, if I'm happy :-) AND: you'll make it to the hall of fame. Provide me with links to your webpage / blog / etc, if you would like to see that mentioned.</li>
|
||||
<li>If you are a committer on GitHub, please commit with the following comment scheme: <br/>[#Issue-ID] GitHub-Ticket-Title - Your specific comment</li>
|
||||
</ul>
|
||||
|
||||
<h3>Hints for new features</h3>
|
||||
|
||||
<p>A lot of ideas are around already. Check out this <a href="https://github.com/jOOQ/jOOQ/issues?milestone=20&state=open">GitHub Milestone</a> to see some of them</p>
|
||||
|
||||
<h3>Hints for new database integrations</h3>
|
||||
|
||||
<p>Should you wish to provide an extension/support for a new RDBMS (such as Informix, Firebird, etc) your work would consist of these steps:</p>
|
||||
<ul>
|
||||
<li>Extend Eclipse .classpath files and .launch targets such that all developers are able to use your newly added database / JDBC drivers</li>
|
||||
<li>Implement code generation for the new RDBMS. For that, you'll need to provide an implementation for AbstractDatabase in jOOQ-meta</li>
|
||||
<li>Make the integration tests for the new RDBMS run.</li>
|
||||
</ul>
|
||||
|
||||
<h3>Or in more detail:</h3>
|
||||
<p>In detail, you have to do these steps:</p>
|
||||
<ul>
|
||||
<li>Migrate create.sql and reset.sql scripts to your dialect</li>
|
||||
<li>Create the above schema (create.sql) and data (reset.sql) in your test database</li>
|
||||
<li>Extend org.jooq.util.AbstractDatabase. Ideally, you'll use your own generated meta-schema classes and the jOOQ API to navigate through your RDBMS's meta-schema in order to discover your test schema. Apart from the integration tests, this adds an additional layer of "proof of concept". See for instance org.jooq.util.oracle.OracleDatabase, where rather complex nested queries are used to navigate through Oracle foreign key relationships.</li>
|
||||
<li>For a minimal implementation, check out org.jooq.util.sqlite.SQLiteDatabase, which only implements loadPrimaryKeys0() and getTables0(). All other implementations are optional extensions. </li>
|
||||
</ul>
|
||||
<p>Once you've done these steps, in order to be sure that everything works fine you'll also have to do this:</p>
|
||||
<ul>
|
||||
<li>Let jOOQ generate the integration test schema</li>
|
||||
<li>Extend the org.jooq.test.jOOQAbstractTest for your RDBMS</li>
|
||||
<li>Run the integration tests for your RDBMS</li>
|
||||
<li>Fix all issues. You should get syntax errors, SQLDialectNotSupportedExceptions, etc</li>
|
||||
</ul>
|
||||
<p>If you provide me with instructions how to set up your RDBMS instance and any partial implementation of the above, I'm going to take that into the jOOQ code base (giving you credit, of course) and guaranteeing implementation integrity in the future.</p>
|
||||
|
||||
<p>So let's get to work, then! :-)</p>
|
||||
|
||||
<p>Cheers, Lukas</p>
|
||||
</td>
|
||||
|
||||
<td valign="top" width="50%" style="padding-left: 10px">
|
||||
<h2>The business community</h2>
|
||||
<h3>Invest in jOOQ</h3>
|
||||
<p>
|
||||
jOOQ is currently looking for partnerships. If you are a database vendor
|
||||
or a software vendor and you wish to get basic or advanced support for your
|
||||
specific database product integrated in jOOQ, or if you have any other specific
|
||||
feature request, please contact me directly at
|
||||
<a href="mailto:lukas.eder@gmail.com">lukas.eder@gmail.com</a>.
|
||||
</p>
|
||||
|
||||
<h3>Advertise on www.jooq.org</h3>
|
||||
<p>
|
||||
jOOQ has a growing community in dire need for good database products. Make
|
||||
yourself heard to many database users!
|
||||
</p>
|
||||
<pre>
|
||||
<div id="downloads" style="width: 100%; height: 300px;"></div>
|
||||
</pre>
|
||||
|
||||
<script>
|
||||
// See the Google chart API documentation for details:
|
||||
// https://google-developers.appspot.com/chart/interactive/docs/quick_start
|
||||
// https://google-developers.appspot.com/chart/interactive/docs/gallery/linechart#Configuration_Options
|
||||
google.load("visualization", "1", {packages:["corechart"]});
|
||||
google.setOnLoadCallback(function() {
|
||||
$.getJSON('<?=$root?>/json/stats.php', function(data) {
|
||||
var rows = new Array();
|
||||
var total = 0;
|
||||
|
||||
$.each(data.sourceforge.downloads, function() {
|
||||
var date = this[0].substring(0, 7);
|
||||
var maven = Number(data.maven[date]);
|
||||
|
||||
rows.push([
|
||||
date,
|
||||
this[1],
|
||||
maven
|
||||
]);
|
||||
|
||||
if (isNaN(maven)) {
|
||||
maven = 0;
|
||||
}
|
||||
|
||||
total += (this[1] + maven);
|
||||
});
|
||||
|
||||
var table = new google.visualization.DataTable();
|
||||
table.addColumn('string', 'Date');
|
||||
table.addColumn('number', 'SourceForge');
|
||||
table.addColumn('number', 'Maven');
|
||||
table.addRows(rows);
|
||||
|
||||
var chart = new google.visualization.LineChart(document.getElementById('downloads'));
|
||||
chart.draw(table, {
|
||||
title: 'Total downloads last year: ' + total,
|
||||
titleTextStyle: {
|
||||
color: '#ffffff',
|
||||
fontSize: 15
|
||||
},
|
||||
|
||||
fontSize: 12,
|
||||
fontName: 'Georgia',
|
||||
|
||||
backgroundColor: '#333333',
|
||||
lineWidth: 4,
|
||||
pointSize: 8,
|
||||
chartArea: {
|
||||
left: '70',
|
||||
width: '85%',
|
||||
height: '80%'
|
||||
},
|
||||
legend: {
|
||||
position: 'bottom',
|
||||
textStyle: { color: '#ffffff' }
|
||||
},
|
||||
colors: ['#678CB1', '#93C763'],
|
||||
hAxis: {
|
||||
textPosition: 'none'
|
||||
},
|
||||
vAxis: {
|
||||
textStyle: { color: '#ffffff' }
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<h3>Donations</h3>
|
||||
<p>
|
||||
If you simply wish to
|
||||
<a href="https://sourceforge.net/project/project_donations.php?group_id=283484" title="Donate to jOOQ, if you like it!">donate</a>,
|
||||
that is fine too.
|
||||
</p>
|
||||
|
||||
<h3>The latest news, links</h3>
|
||||
<p>
|
||||
Follow jOOQ on any of these channels to get the latest news:
|
||||
</p>
|
||||
<ul>
|
||||
<li>On Twitter: <a href="https://twitter.com/#!/JavaOOQ" title="jOOQ on Twitter">https://twitter.com/#!/JavaOOQ</a>
|
||||
<li>On Wordpress: <a href="http://blog.jooq.org" title="Lukas Eder's blog about Java, SQL and jOOQ">http://blog.jooq.org</a></li>
|
||||
<li>On SourceForge: <a href="https://sourceforge.net/projects/jooq/" title="jOOQ download and hosting on source forge">https://sourceforge.net/projects/jooq/</a></li>
|
||||
<li>On GitHub: <a href="https://github.com/jOOQ/jOOQ" title="fork jOOQ on GitHub">https://github.com/jOOQ/jOOQ</a></li>
|
||||
<li>On ohloh: <a href="https://www.ohloh.net/p/jooq" title="see some statistics about jOOQ on ohloh">https://www.ohloh.net/p/jooq</a></li>
|
||||
<li>On freecode: <a href="http://freecode.com/projects/jooq" title="subscribe to some jOOQ announcements on freshmeat">http://freecode.com/projects/jooq</a></li>
|
||||
</ul>
|
||||
|
||||
<h3>The jOOQ Brand</h3>
|
||||
<p>
|
||||
Want to publish something about jOOQ? Use the official brand! Right-click on any image and
|
||||
choose "Save As..." to store the image on your computer.
|
||||
<a href="mailto:lukas.eder@gmail.com">contact me</a> for more specific formats:
|
||||
</p>
|
||||
<h3>Logo (colour and b/w, 250x180):</h3>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td valign="top" width="50%">
|
||||
<a href="<?=$root?>/img/logo.png">
|
||||
<img style="width: 100%; border: 0" src="<?=$root?>/img/logo.png" title="The jOOQ Logo 250x180" alt="The jOOQ Logo 250x180"/>
|
||||
</a>
|
||||
</td>
|
||||
<td valign="top" width="50%">
|
||||
<a href="<?=$root?>/img/logo-bw.png">
|
||||
<img style="width: 100%; border: 0" src="<?=$root?>/img/logo-bw.png" title="The jOOQ Logo 250x180" alt="The jOOQ Logo 250x180"/>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Logo (colour and b/w, 1024x768):</h3>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td valign="top" width="50%">
|
||||
<a href="<?=$root?>/img/logo-big.png">
|
||||
<img style="width: 100%; border: 0" src="<?=$root?>/img/logo-big.png" title="The jOOQ Logo 1024x768" alt="The jOOQ Logo 1024x768"/>
|
||||
</a>
|
||||
</td>
|
||||
<td valign="top" width="50%">
|
||||
<a href="<?=$root?>/img/logo-big-bw.png">
|
||||
<img style="width: 100%; border: 0" src="<?=$root?>/img/logo-big-bw.png" title="The jOOQ Logo 1024x768" alt="The jOOQ Logo 1024x768"/>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Banner (colour and b/w, 1024x186):</h3>
|
||||
<a href="<?=$root?>/img/banner-medium.png">
|
||||
<img style="width: 100%; border: 0; box-shadow: 5px 5px 20px #AAAAAA;" src="<?=$root?>/img/banner-medium.png" title="The jOOQ Logo 1024x186" alt="The jOOQ Logo 1024x186"/>
|
||||
</a>
|
||||
|
||||
|
||||
<h3>Logo (colour and b/w, 220x220):</h3>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td valign="top" width="50%">
|
||||
<a href="<?=$root?>/img/joox.png">
|
||||
<img style="width: 100%; border: 0" src="<?=$root?>/img/joox.png" title="The jOOQ Logo 220x220" alt="The jOOQ Logo 250x180"/>
|
||||
</a>
|
||||
</td>
|
||||
<td valign="top" width="50%">
|
||||
<a href="<?=$root?>/img/joox-bw.png">
|
||||
<img style="width: 100%; border: 0" src="<?=$root?>/img/joox-bw.png" title="The jOOQ Logo 220x220" alt="The jOOQ Logo 250x180"/>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>jOOX Logo (colour, 1800x1800):</h3>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td valign="top" width="50%">
|
||||
<a href="<?=$root?>/img/joox-big.png">
|
||||
<img style="width: 100%; border: 0" src="<?=$root?>/img/joox-big.png" title="The jOOQ Logo 1800x1800" alt="The jOOQ Logo 1024x768"/>
|
||||
</a>
|
||||
</td>
|
||||
<td valign="top" width="50%">
|
||||
<a href="<?=$root?>/img/joox-big-bw.png">
|
||||
<img style="width: 100%; border: 0" src="<?=$root?>/img/joox-big-bw.png" title="The jOOQ Logo 1800x1800" alt="The jOOQ Logo 1024x768"/>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
@ -1,5 +0,0 @@
|
||||
<?php
|
||||
$root = "";
|
||||
$minorVersion = "3.1";
|
||||
$version = $minorVersion . ".0";
|
||||
?>
|
||||
@ -1,421 +0,0 @@
|
||||
body {
|
||||
font-family: 'Oxygen', sans-serif;
|
||||
font-weight: normal;
|
||||
text-shadow: 0 1px 0 #FFFFFF;
|
||||
font-size: 15px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
color: #000000;
|
||||
letter-spacing: 0;
|
||||
line-height: 1.4;
|
||||
text-decoration: none;
|
||||
text-shadow: none;
|
||||
text-transform: none;
|
||||
word-spacing: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
background: #888787;
|
||||
background: -webkit-gradient(linear, left, right, from(#888787), to(#666));
|
||||
background: -moz-linear-gradient(left, #888787, #666);
|
||||
background: gradient(linear, left, right, from(#888787), to(#666));
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-family: 'Special Elite', cursive;
|
||||
font-weight: normal;
|
||||
color: #000000;
|
||||
margin-top: 0.5em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 4em;
|
||||
text-shadow: 0 1px 1px #444;
|
||||
padding-top: 10px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 2.5em;
|
||||
text-shadow: 0 1px 1px #444;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.3em;
|
||||
text-shadow: 0 1px 0 #444;
|
||||
}
|
||||
|
||||
pre {
|
||||
background: none repeat scroll 0 0 #333333;
|
||||
border-width: 2px;
|
||||
border-style: solid;
|
||||
border-color: #000;
|
||||
box-shadow: 5px 5px 20px #AAAAAA;
|
||||
color: #F1F2F3;
|
||||
display: block;
|
||||
font-family: monospace;
|
||||
font-size: 12px;
|
||||
line-height: 1.5em;
|
||||
margin: 1.5em 0;
|
||||
padding: 1em;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
button {
|
||||
background: none repeat scroll 0 0 #333333;
|
||||
border-width: 2px;
|
||||
border-style: solid;
|
||||
border-color: #000;
|
||||
box-shadow: 5px 5px 20px #AAAAAA;
|
||||
color: #F1F2F3;
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
line-height: 1.5em;
|
||||
margin: 1.5em 0;
|
||||
padding: 0.3em;
|
||||
text-align: center;
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
p {
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
}
|
||||
|
||||
td.left, th.left {
|
||||
padding-right: 5px;
|
||||
padding-bottom: 5px;
|
||||
vertical-align: top;
|
||||
text-align: right;
|
||||
}
|
||||
td.right, th.right {
|
||||
padding-left: 5px;
|
||||
padding-bottom: 5px;
|
||||
vertical-align: top;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
table.ticket-table td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
td h3 {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
ul {
|
||||
margin: 0;
|
||||
list-style-image:url(../img/favicon-16.png);
|
||||
}
|
||||
|
||||
ol {
|
||||
padding-top: 1em;
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
|
||||
dl.toc {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
dl.toc dt {
|
||||
float: left;
|
||||
clear: left;
|
||||
width: 4em;
|
||||
}
|
||||
|
||||
dl.toc dt.toc-main {
|
||||
padding-top: 1em;
|
||||
}
|
||||
|
||||
dl.toc dd {
|
||||
float: left;
|
||||
width: 50%;
|
||||
margin: 0 0.5em;
|
||||
}
|
||||
|
||||
dl.toc dd.toc-main {
|
||||
padding-top: 1em;
|
||||
}
|
||||
|
||||
button a,
|
||||
button a:link,
|
||||
button a:visited,
|
||||
button a:hover,
|
||||
button a:active {
|
||||
color: #F1F2F3;
|
||||
text-decoration: none;
|
||||
text-shadow: 0 1px 2px #333333;
|
||||
}
|
||||
|
||||
|
||||
a,
|
||||
a:link,
|
||||
a:visited,
|
||||
a:hover,
|
||||
a:active {
|
||||
color: #000000;
|
||||
text-decoration: none;
|
||||
text-shadow: 0 1px 2px #333333;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
h2 a, h2 a:link, h2 a:visited, h2 a:hover, h2 a:active {
|
||||
color: #aaaaaa;
|
||||
text-decoration: none;
|
||||
text-shadow: 0 1px 1px #444444;
|
||||
|
||||
left: -30px;
|
||||
position: absolute;
|
||||
width: 740px;
|
||||
}
|
||||
|
||||
h2 a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
height: auto;
|
||||
min-height: 101%;
|
||||
width: 1050px;
|
||||
margin: 0 auto;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.block {
|
||||
background-color: #FFFFFF;
|
||||
width: 100%;
|
||||
|
||||
border-width: 0;
|
||||
border-style: solid;
|
||||
border-color: #000;
|
||||
box-shadow: 0 0 30px #777777;
|
||||
}
|
||||
|
||||
#header {
|
||||
padding-top: 1em;
|
||||
padding-left: 3em;
|
||||
padding-right: 3em;
|
||||
padding-bottom: 1em;
|
||||
|
||||
background: #aaaaaa;
|
||||
background: -webkit-linear-gradient(left, #aaaaaa, #ffeeee);
|
||||
background: -moz-linear-gradient(left, #aaaaaa, #ffeeee);
|
||||
background: gradient(linear, left, right, from(#aaaaaa), to(#ffeeee));
|
||||
filter: progid:DXImageTransform.Microsoft.Gradient(
|
||||
StartColorStr='#aaaaaa', EndColorStr='#ffeeee', GradientType=1);
|
||||
|
||||
-webkit-box-shadow: inset rgba(0,0,0,.1) 0 5px 5px;
|
||||
-moz-box-shadow: inset rgba(0,0,0,.1) 0 5px 5px;
|
||||
box-shadow: inset rgba(0,0,0,.1) 0 5px 5px;
|
||||
border-top: 1px solid rgba(0,0,0,.2);
|
||||
}
|
||||
|
||||
#content {
|
||||
padding-top: 1em;
|
||||
padding-left: 3em;
|
||||
padding-right: 3em;
|
||||
|
||||
background: #e8e8e8;
|
||||
background: -webkit-linear-gradient(left, #e8e8e8, #ffffff);
|
||||
/* [#2354] Firefox seems to have a bug here, for large pages */
|
||||
/* background: -moz-linear-gradient(left, #e8e8e8, #ffffff); */
|
||||
background: gradient(linear, left, right, from(#e8e8e8), to(#ffffff));
|
||||
filter: progid:DXImageTransform.Microsoft.Gradient(
|
||||
StartColorStr='#e8e8e8', EndColorStr='#ffffff', GradientType=1);
|
||||
|
||||
-webkit-box-shadow: inset rgba(0,0,0,.1) 0 5px 5px;
|
||||
-moz-box-shadow: inset rgba(0,0,0,.1) 0 5px 5px;
|
||||
box-shadow: inset rgba(0,0,0,.1) 0 5px 5px;
|
||||
border-top: 1px solid rgba(0,0,0,.2);
|
||||
}
|
||||
|
||||
#navigation {
|
||||
font-family: 'Special Elite',cursive;
|
||||
|
||||
padding-top: 25px;
|
||||
padding-left: 3em;
|
||||
padding-right: 3em;
|
||||
|
||||
height: 50px;
|
||||
background: #444;
|
||||
background: -webkit-linear-gradient(left top, #555, #333);
|
||||
background: -moz-linear-gradient(top, #555, #333);
|
||||
background: gradient(linear, left top, left bottom, from(#555), to(#333));
|
||||
}
|
||||
|
||||
#tweets {
|
||||
padding-top: 4px;
|
||||
height: 25px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#menu {
|
||||
float: right;
|
||||
}
|
||||
|
||||
div.tweet-item {
|
||||
float: left;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#tweets {
|
||||
height: 25px;
|
||||
float: left;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#menu {
|
||||
float: right;
|
||||
}
|
||||
|
||||
div.tweet-item {
|
||||
float: left;
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
div.tweet-item img {
|
||||
box-shadow: 0 0 5px #000;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
#navigation a,
|
||||
#navigation a:link,
|
||||
#navigation a:visited,
|
||||
#navigation a:hover,
|
||||
#navigation a:active {
|
||||
color: #aaa;
|
||||
text-shadow: #000 -1px -1px 0px;
|
||||
text-decoration: none;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
#navigation .navigation-item-active a,
|
||||
#navigation .navigation-item-active a:link,
|
||||
#navigation .navigation-item-active a:visited,
|
||||
#navigation .navigation-item-active a:hover,
|
||||
#navigation .navigation-item-active a:active {
|
||||
color: #ffdddd;
|
||||
}
|
||||
|
||||
#navigation a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
div.navigation-item-left {
|
||||
float: left;
|
||||
margin-left: 2em;
|
||||
height: 50px;
|
||||
}
|
||||
|
||||
div.navigation-item-active {
|
||||
background: url("../img/navigation-item-active.png") no-repeat center bottom;
|
||||
}
|
||||
|
||||
#footer {
|
||||
font-size: 0.7em;
|
||||
color: #ddd;
|
||||
|
||||
padding-top: 1em;
|
||||
padding-left: 3em;
|
||||
padding-right: 3em;
|
||||
padding-bottom: 1em;
|
||||
|
||||
background: #888787;
|
||||
background: -webkit-gradient(linear, left, right, from(#888787), to(#666));
|
||||
background: -moz-linear-gradient(left, #888787, #666);
|
||||
background: gradient(linear, left, right, from(#888787), to(#666));
|
||||
-webkit-box-shadow: inset rgba(0,0,0,.1) 0 5px 5px;
|
||||
-moz-box-shadow: inset rgba(0,0,0,.1) 0 5px 5px;
|
||||
box-shadow: inset rgba(0,0,0,.1) 0 5px 5px;
|
||||
border-top: 1px solid rgba(0,0,0,.2);
|
||||
text-shadow: #555 -1px -1px 0px;
|
||||
}
|
||||
|
||||
div.screenshot {
|
||||
background: none repeat scroll 0 0 #ffffff;
|
||||
border-width: 2px;
|
||||
border-style: solid;
|
||||
border-color: #000;
|
||||
box-shadow: 5px 5px 20px #AAAAAA;
|
||||
color: #000000;
|
||||
display: block;
|
||||
font-family: monospace;
|
||||
font-size: 12px;
|
||||
line-height: 1.5em;
|
||||
margin: 1.5em 0;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: monospace;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.mono {
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
.row {
|
||||
width: 100%;
|
||||
margin-top: 0;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.col {
|
||||
float: left;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.col > * {
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.col .input,
|
||||
.col select {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
.col-1 {
|
||||
width: 33%;
|
||||
}
|
||||
|
||||
.col-2 {
|
||||
width: 66%;
|
||||
}
|
||||
|
||||
.col-3 {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#intro {
|
||||
height: auto;
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
#intro .row {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
#intro .col {
|
||||
height: 300px;
|
||||
}
|
||||
|
||||
#registration {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
#registration .row {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
@ -1,44 +0,0 @@
|
||||
.modal {
|
||||
display: none;
|
||||
width: 400px;
|
||||
background: #fff;
|
||||
padding: 15px 30px;
|
||||
-webkit-border-radius: 8px;
|
||||
-moz-border-radius: 8px;
|
||||
-o-border-radius: 8px;
|
||||
-ms-border-radius: 8px;
|
||||
border-radius: 8px;
|
||||
-webkit-box-shadow: 0 0 10px #000;
|
||||
-moz-box-shadow: 0 0 10px #000;
|
||||
-o-box-shadow: 0 0 10px #000;
|
||||
-ms-box-shadow: 0 0 10px #000;
|
||||
box-shadow: 0 0 10px #000;
|
||||
}
|
||||
|
||||
.modal a.close-modal {
|
||||
position: absolute;
|
||||
top: -12.5px;
|
||||
right: -12.5px;
|
||||
display: block;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
text-indent: -9999px;
|
||||
background: url(close.png) no-repeat 0 0;
|
||||
}
|
||||
|
||||
.modal-spinner {
|
||||
display: none;
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
margin-right: -32px;
|
||||
margin-top: -32px;
|
||||
background: url(spinner.gif) #111 no-repeat center center;
|
||||
-webkit-border-radius: 8px;
|
||||
-moz-border-radius: 8px;
|
||||
-o-border-radius: 8px;
|
||||
-ms-border-radius: 8px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
@ -1,43 +0,0 @@
|
||||
<?php
|
||||
require 'frame.php';
|
||||
function getH1() {
|
||||
return 'Show us some love';
|
||||
}
|
||||
function getActiveMenu() {
|
||||
return "donate";
|
||||
}
|
||||
function printContent() {
|
||||
global $root;
|
||||
global $minorVersion;
|
||||
global $version;
|
||||
?>
|
||||
<iframe style="float: right; width: 324px; height: 402px; overflow: hidden; border: 0px none; margin-left: 10px; margin-bottom: 10px" src="https://www.catincan.com/catincan-embed/472"></iframe>
|
||||
|
||||
<h2>Crowd-Fund jOOQ features on Catincan</h2>
|
||||
<p>
|
||||
Some features might need a little funding to get started first. For example adding MS Access support to jOOQ.
|
||||
</p>
|
||||
<p>
|
||||
In order to provide official support for MS Access in jOOQ, an MS Access license needs to be purchased from Microsoft.
|
||||
</p>
|
||||
<p>
|
||||
You might have other ideas about features that could be funded in jOOQ. For more info, please refer to Catincan:
|
||||
</p>
|
||||
<p>
|
||||
<a href="https://www.catincan.com/projects/close/jooq" title="Crowd Funding features in jOOQ through Catincan">https://www.catincan.com/projects/close/jooq</a>
|
||||
</p>
|
||||
|
||||
|
||||
<h2>Donate directly through SourceForge / PayPal</h2>
|
||||
<p>
|
||||
If you don't need any merchandise, or if you want to donate a bigger amount, feel free to do so directly here:
|
||||
</p>
|
||||
<p>
|
||||
<a href="https://sourceforge.net/p/jooq/donate" title="Donate to jOOQ">https://sourceforge.net/p/jooq/donate</a>
|
||||
</p>
|
||||
<p>
|
||||
Your donations are highly valued and make up for the numerous amounts of hours (and love) put into jOOQ. It also helps buying those more and more demanding machines that can run 14 RDBMS in parallel, for integration tests :-)
|
||||
</p>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
@ -1,123 +0,0 @@
|
||||
<?php
|
||||
require 'frame.php';
|
||||
function getH1() {
|
||||
return 'Get up and running with jOOQ';
|
||||
}
|
||||
function getActiveMenu() {
|
||||
return "download";
|
||||
}
|
||||
function printContent() {
|
||||
global $root;
|
||||
global $minorVersion;
|
||||
global $version;
|
||||
?>
|
||||
|
||||
<h2 id="Download"><a href="#Download" name="Download">#</a> Download</h2>
|
||||
<p>
|
||||
Get the latest version from SourceForge<br/>
|
||||
<a href="https://sourceforge.net/projects/jooq/files/Release/" title="Get the latest jOOQ version from SourceForge">https://sourceforge.net/projects/jooq/files/Release/</a>
|
||||
</p>
|
||||
|
||||
<h3>Maven</h3>
|
||||
<p>
|
||||
jOOQ is also available as a Maven dependency from Maven central. Early snapshots can be obtained from the Sonatype Maven repository:
|
||||
<br/>
|
||||
<a href="https://oss.sonatype.org/content/repositories/snapshots/org/jooq/" title="jOOQ's SNAPSHOT repository at Sonatype">https://oss.sonatype.org/content/repositories/snapshots/org/jooq/</a>
|
||||
</p>
|
||||
|
||||
<h3>Source Code</h3>
|
||||
<p>
|
||||
jOOQ's sources are hosted at GitHub:
|
||||
<br/>
|
||||
<a href="http://github.com/jOOQ/jOOQ" title="jOOQ GitHub repository">git@github.com:jOOQ/jOOQ.git</a>
|
||||
</p>
|
||||
|
||||
<h2 id="version"><a href="#version" name="version">#</a> Get the right version of jOOQ</h2>
|
||||
<p>
|
||||
For increased quality, jOOQ uses <a href="http://semver.org/" title="jOOQ uses semantic versioning">semantic versioning</a>.
|
||||
The jOOQ roadmap plans for:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><code>jooq-X.0.0:</code> major releases about once a year</li>
|
||||
<li><code>jooq-X.Y.0:</code> minor releases about once a month</li>
|
||||
<li><code>jooq-X.Y.Z:</code>patch releases at will</li>
|
||||
</ul>
|
||||
|
||||
<h3>3.x release notes</h3>
|
||||
<p>
|
||||
Find release notes for currently maintained branches here:
|
||||
</p>
|
||||
<ul>
|
||||
<li><a href="notes?version=<?=preg_replace('/(\\d+\\.\\d+)\\.\\d+(-RC\\d+)?/', '$1', $version)?>" title="Release notes for the latest jOOQ version">The <?=$minorVersion?> branch (the latest version)</a></li>
|
||||
<li><a href="notes?version=3.0" title="Release notes for the 3.0 jOOQ branch">The 3.0 branch</a></li>
|
||||
</ul>
|
||||
|
||||
<h3>2.x release notes</h3>
|
||||
<p>
|
||||
Find release notes for past branches here:
|
||||
</p>
|
||||
<ul>
|
||||
<li><a href="notes?version=2.6" title="Release notes for the 2.6 jOOQ branch">The 2.6 branch</a></li>
|
||||
<li><a href="notes?version=2.5" title="Release notes for the 2.5 jOOQ branch">The 2.5 branch</a></li>
|
||||
<li><a href="notes?version=2.4" title="Release notes for the 2.4 jOOQ branch">The 2.4 branch</a></li>
|
||||
<li><a href="notes?version=2.3" title="Release notes for the 2.3 jOOQ branch">The 2.3 branch</a></li>
|
||||
<li><a href="notes?version=2.2" title="Release notes for the 2.2 jOOQ branch">The 2.2 branch</a></li>
|
||||
<li><a href="notes?version=2.1" title="Release notes for the 2.1 jOOQ branch">The 2.1 branch</a></li>
|
||||
<li><a href="notes?version=2.0" title="Release notes for the 2.0 jOOQ branch">The 2.0 branch</a></li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
All branches are available here<br/>
|
||||
<a href="https://sourceforge.net/projects/jooq/files/Release/" title="Get the latest jOOQ version from SourceForge">https://sourceforge.net/projects/jooq/files/Release/</a>
|
||||
</p>
|
||||
|
||||
<h3>Future versions</h3>
|
||||
<p>
|
||||
The semi-formal roadmap is here:<br/>
|
||||
<a href="https://github.com/jOOQ/jOOQ/issues/milestones" title="The jOOQ Roadmap">https://github.com/jOOQ/jOOQ/issues/milestones</a>
|
||||
</p>
|
||||
|
||||
<h2 id="License"><a href="#License" name="License">#</a> License</h2>
|
||||
<p>
|
||||
jOOQ is distributed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" title="Apache 2.0 License">Apache 2.0 licence</a>
|
||||
</p>
|
||||
|
||||
<h2 id="other"><a href="#other" name="other">#</a> Download other products of the jOO* family</h2>
|
||||
<p>
|
||||
"jOO*" stands for Java Object Oriented ... It started with jOOQ, an internalised
|
||||
domain specific language (aka SQL), written in Java. This DSL happens to be a
|
||||
fluent API, a concept that is on the rise in software engineering. jOO* comes
|
||||
into play whenever a pre-existing API is too clumsy and no fun to work with. Here
|
||||
are some other products:
|
||||
|
||||
<h3>jOOX</h3>
|
||||
<div style="height: 100px;">
|
||||
<a href="http://code.google.com/p/joox/"
|
||||
title="jOOX, a product inspired by jOOQ">
|
||||
<img src="<?=$root?>/img/joox-small.png" alt="The jOOX Logo" style="float:left; margin-right: 4em; border: 0"/></a>
|
||||
<p><a href="http://code.google.com/p/joox/"
|
||||
title="jOOX, a product inspired by jOOQ">jOOX</a> stands for Java
|
||||
Object Oriented XML. It is a simple wrapper for the org.w3c.dom package,
|
||||
to allow for fluent XML document creation and manipulation where DOM is
|
||||
required but too verbose. jOOX only wraps the underlying document and
|
||||
can be used to enhance DOM, not as an alternative.</p>
|
||||
</div>
|
||||
|
||||
<h3>jOOR and jOOU</h3>
|
||||
<div style="height: 100px;">
|
||||
<div style="width: 120px; height: 100px; float: left; margin-right: 4em; border: 0"> </div>
|
||||
<p><a href="http://code.google.com/p/joor/"
|
||||
title="jOOR, a product inspired by jOOQ">jOOR</a> stands for Java
|
||||
Object Oriented Reflection. It is a simple wrapper for the java.lang.reflect package,
|
||||
to allow for fluent reflective access of objects in Java.</p>
|
||||
<p><a href="http://code.google.com/p/joou/"
|
||||
title="jOOU, a product inspired by jOOQ">jOOU</a> stands for Java
|
||||
Object Oriented Unsigned. It is a simple implementation of unsigned integer numbers in Java,
|
||||
created out of necessity, as jOOQ supports MySQL's (and other databases') unsigned integers</p>
|
||||
</div>
|
||||
|
||||
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
@ -1 +0,0 @@
|
||||
Satisfy any
|
||||
@ -1,89 +0,0 @@
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>400 Bad Request</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
|
||||
<meta property="og:title" content="jOOQ" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="http://www.jooq.org" />
|
||||
<meta property="og:image" content="http://www.jooq.org/img/logo.png" />
|
||||
<meta property="og:site_name" content="jOOQ" />
|
||||
<meta property="fb:admins" content="649865547" />
|
||||
|
||||
<meta name="description" content="jOOQ, a fluent API for typesafe SQL query construction and execution."/>
|
||||
<meta name="author" content="Lukas Eder"/>
|
||||
<meta name="keywords" content="jOOQ, JDBC, database abstraction, source code generation, SQL, stored procedures, stored functions, UDT, UDF, typesafe, fluentAPI, fluent API, jOOQL"/>
|
||||
|
||||
<link href='http://fonts.googleapis.com/css?family=Oxygen' rel='stylesheet' type='text/css'>
|
||||
<link href='http://fonts.googleapis.com/css?family=Special+Elite' rel='stylesheet' type='text/css'>
|
||||
<link href="/css/jooq.css" type="text/css" rel="stylesheet" />
|
||||
<link href="/js/prettify/prettify.css" type="text/css" rel="stylesheet" />
|
||||
<script type="text/javascript" src="/js/jquery.js"></script>
|
||||
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
|
||||
<script type="text/javascript" src="/js/prettify/prettify.js"></script>
|
||||
<script type="text/javascript" src="/js/prettify/lang-sql.js"></script>
|
||||
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$("a").filter("[href*='http']").filter(":not([href*='jooq.org'])").attr("target", "_blank");
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body onload="prettyPrint()">
|
||||
<div id="navigation">
|
||||
<div class="wrapper">
|
||||
|
||||
<div id="menu">
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/" title="jOOQ Home Page">Start</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/learn.php" title="Learn about jOOQ">Learn</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/download.php" title="Download jOOQ">Download</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/community.php" title="See who's behind jOOQ and contribute">Community</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/donate.php" title="Show some love to the jOOQ developer">Donate</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="header">
|
||||
<div class="wrapper">
|
||||
<table width="100%" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td width="700" valign="top">
|
||||
<h1>Error:<br/>400 Bad Request</h1></td>
|
||||
<td align="right" valign="top"><img src="/img/logo.png" alt="jOOQ Logo"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
<div class="wrapper">
|
||||
<p class="right">
|
||||
<div style="float: left; width: 400px">
|
||||
Copyright (c) 2009-2013 by <a href="http://blog.jooq.org" title="Lukas's Blog about Java, SQL, and jOOQ">Lukas Eder</a>.
|
||||
Distributed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" title="Apache 2.0 License">Apache 2.0 licence</a>
|
||||
</div>
|
||||
<div style="float: right; width: 400px">
|
||||
Want to see your brand here? <a href="mailto:lukas.eder@gmail.com" title="contact me">Contact me</a> to partner up with jOOQ
|
||||
</div>
|
||||
<br/>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: none">
|
||||
<img src="/img/logo.png" alt="The jOOQ Logo" title="jOOQ Logo"/>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,89 +0,0 @@
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>401 Authorization Required</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
|
||||
<meta property="og:title" content="jOOQ" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="http://www.jooq.org" />
|
||||
<meta property="og:image" content="http://www.jooq.org/img/logo.png" />
|
||||
<meta property="og:site_name" content="jOOQ" />
|
||||
<meta property="fb:admins" content="649865547" />
|
||||
|
||||
<meta name="description" content="jOOQ, a fluent API for typesafe SQL query construction and execution."/>
|
||||
<meta name="author" content="Lukas Eder"/>
|
||||
<meta name="keywords" content="jOOQ, JDBC, database abstraction, source code generation, SQL, stored procedures, stored functions, UDT, UDF, typesafe, fluentAPI, fluent API, jOOQL"/>
|
||||
|
||||
<link href='http://fonts.googleapis.com/css?family=Oxygen' rel='stylesheet' type='text/css'>
|
||||
<link href='http://fonts.googleapis.com/css?family=Special+Elite' rel='stylesheet' type='text/css'>
|
||||
<link href="/css/jooq.css" type="text/css" rel="stylesheet" />
|
||||
<link href="/js/prettify/prettify.css" type="text/css" rel="stylesheet" />
|
||||
<script type="text/javascript" src="/js/jquery.js"></script>
|
||||
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
|
||||
<script type="text/javascript" src="/js/prettify/prettify.js"></script>
|
||||
<script type="text/javascript" src="/js/prettify/lang-sql.js"></script>
|
||||
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$("a").filter("[href*='http']").filter(":not([href*='jooq.org'])").attr("target", "_blank");
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body onload="prettyPrint()">
|
||||
<div id="navigation">
|
||||
<div class="wrapper">
|
||||
|
||||
<div id="menu">
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/" title="jOOQ Home Page">Start</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/learn.php" title="Learn about jOOQ">Learn</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/download.php" title="Download jOOQ">Download</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/community.php" title="See who's behind jOOQ and contribute">Community</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/donate.php" title="Show some love to the jOOQ developer">Donate</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="header">
|
||||
<div class="wrapper">
|
||||
<table width="100%" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td width="700" valign="top">
|
||||
<h1>Error:<br/>401 Authorization Required</h1></td>
|
||||
<td align="right" valign="top"><img src="/img/logo.png" alt="jOOQ Logo"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
<div class="wrapper">
|
||||
<p class="right">
|
||||
<div style="float: left; width: 400px">
|
||||
Copyright (c) 2009-2013 by <a href="http://blog.jooq.org" title="Lukas's Blog about Java, SQL, and jOOQ">Lukas Eder</a>.
|
||||
Distributed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" title="Apache 2.0 License">Apache 2.0 licence</a>
|
||||
</div>
|
||||
<div style="float: right; width: 400px">
|
||||
Want to see your brand here? <a href="mailto:lukas.eder@gmail.com" title="contact me">Contact me</a> to partner up with jOOQ
|
||||
</div>
|
||||
<br/>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: none">
|
||||
<img src="/img/logo.png" alt="The jOOQ Logo" title="jOOQ Logo"/>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,89 +0,0 @@
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
|
||||
<meta property="og:title" content="jOOQ" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="http://www.jooq.org" />
|
||||
<meta property="og:image" content="http://www.jooq.org/img/logo.png" />
|
||||
<meta property="og:site_name" content="jOOQ" />
|
||||
<meta property="fb:admins" content="649865547" />
|
||||
|
||||
<meta name="description" content="jOOQ, a fluent API for typesafe SQL query construction and execution."/>
|
||||
<meta name="author" content="Lukas Eder"/>
|
||||
<meta name="keywords" content="jOOQ, JDBC, database abstraction, source code generation, SQL, stored procedures, stored functions, UDT, UDF, typesafe, fluentAPI, fluent API, jOOQL"/>
|
||||
|
||||
<link href='http://fonts.googleapis.com/css?family=Oxygen' rel='stylesheet' type='text/css'>
|
||||
<link href='http://fonts.googleapis.com/css?family=Special+Elite' rel='stylesheet' type='text/css'>
|
||||
<link href="/css/jooq.css" type="text/css" rel="stylesheet" />
|
||||
<link href="/js/prettify/prettify.css" type="text/css" rel="stylesheet" />
|
||||
<script type="text/javascript" src="/js/jquery.js"></script>
|
||||
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
|
||||
<script type="text/javascript" src="/js/prettify/prettify.js"></script>
|
||||
<script type="text/javascript" src="/js/prettify/lang-sql.js"></script>
|
||||
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$("a").filter("[href*='http']").filter(":not([href*='jooq.org'])").attr("target", "_blank");
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body onload="prettyPrint()">
|
||||
<div id="navigation">
|
||||
<div class="wrapper">
|
||||
|
||||
<div id="menu">
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/" title="jOOQ Home Page">Start</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/learn.php" title="Learn about jOOQ">Learn</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/download.php" title="Download jOOQ">Download</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/community.php" title="See who's behind jOOQ and contribute">Community</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/donate.php" title="Show some love to the jOOQ developer">Donate</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="header">
|
||||
<div class="wrapper">
|
||||
<table width="100%" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td width="700" valign="top">
|
||||
<h1>Error:<br/>403 Forbidden</h1></td>
|
||||
<td align="right" valign="top"><img src="/img/logo.png" alt="jOOQ Logo"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
<div class="wrapper">
|
||||
<p class="right">
|
||||
<div style="float: left; width: 400px">
|
||||
Copyright (c) 2009-2013 by <a href="http://blog.jooq.org" title="Lukas's Blog about Java, SQL, and jOOQ">Lukas Eder</a>.
|
||||
Distributed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" title="Apache 2.0 License">Apache 2.0 licence</a>
|
||||
</div>
|
||||
<div style="float: right; width: 400px">
|
||||
Want to see your brand here? <a href="mailto:lukas.eder@gmail.com" title="contact me">Contact me</a> to partner up with jOOQ
|
||||
</div>
|
||||
<br/>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: none">
|
||||
<img src="/img/logo.png" alt="The jOOQ Logo" title="jOOQ Logo"/>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,89 +0,0 @@
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>404 Not Found</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
|
||||
<meta property="og:title" content="jOOQ" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="http://www.jooq.org" />
|
||||
<meta property="og:image" content="http://www.jooq.org/img/logo.png" />
|
||||
<meta property="og:site_name" content="jOOQ" />
|
||||
<meta property="fb:admins" content="649865547" />
|
||||
|
||||
<meta name="description" content="jOOQ, a fluent API for typesafe SQL query construction and execution."/>
|
||||
<meta name="author" content="Lukas Eder"/>
|
||||
<meta name="keywords" content="jOOQ, JDBC, database abstraction, source code generation, SQL, stored procedures, stored functions, UDT, UDF, typesafe, fluentAPI, fluent API, jOOQL"/>
|
||||
|
||||
<link href='http://fonts.googleapis.com/css?family=Oxygen' rel='stylesheet' type='text/css'>
|
||||
<link href='http://fonts.googleapis.com/css?family=Special+Elite' rel='stylesheet' type='text/css'>
|
||||
<link href="/css/jooq.css" type="text/css" rel="stylesheet" />
|
||||
<link href="/js/prettify/prettify.css" type="text/css" rel="stylesheet" />
|
||||
<script type="text/javascript" src="/js/jquery.js"></script>
|
||||
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
|
||||
<script type="text/javascript" src="/js/prettify/prettify.js"></script>
|
||||
<script type="text/javascript" src="/js/prettify/lang-sql.js"></script>
|
||||
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$("a").filter("[href*='http']").filter(":not([href*='jooq.org'])").attr("target", "_blank");
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body onload="prettyPrint()">
|
||||
<div id="navigation">
|
||||
<div class="wrapper">
|
||||
|
||||
<div id="menu">
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/" title="jOOQ Home Page">Start</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/learn.php" title="Learn about jOOQ">Learn</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/download.php" title="Download jOOQ">Download</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/community.php" title="See who's behind jOOQ and contribute">Community</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/donate.php" title="Show some love to the jOOQ developer">Donate</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="header">
|
||||
<div class="wrapper">
|
||||
<table width="100%" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td width="700" valign="top">
|
||||
<h1>Error:<br/>404 Not Found</h1></td>
|
||||
<td align="right" valign="top"><img src="/img/logo.png" alt="jOOQ Logo"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
<div class="wrapper">
|
||||
<p class="right">
|
||||
<div style="float: left; width: 400px">
|
||||
Copyright (c) 2009-2013 by <a href="http://blog.jooq.org" title="Lukas's Blog about Java, SQL, and jOOQ">Lukas Eder</a>.
|
||||
Distributed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" title="Apache 2.0 License">Apache 2.0 licence</a>
|
||||
</div>
|
||||
<div style="float: right; width: 400px">
|
||||
Want to see your brand here? <a href="mailto:lukas.eder@gmail.com" title="contact me">Contact me</a> to partner up with jOOQ
|
||||
</div>
|
||||
<br/>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: none">
|
||||
<img src="/img/logo.png" alt="The jOOQ Logo" title="jOOQ Logo"/>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,89 +0,0 @@
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>408 Request Timed Out</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
|
||||
<meta property="og:title" content="jOOQ" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="http://www.jooq.org" />
|
||||
<meta property="og:image" content="http://www.jooq.org/img/logo.png" />
|
||||
<meta property="og:site_name" content="jOOQ" />
|
||||
<meta property="fb:admins" content="649865547" />
|
||||
|
||||
<meta name="description" content="jOOQ, a fluent API for typesafe SQL query construction and execution."/>
|
||||
<meta name="author" content="Lukas Eder"/>
|
||||
<meta name="keywords" content="jOOQ, JDBC, database abstraction, source code generation, SQL, stored procedures, stored functions, UDT, UDF, typesafe, fluentAPI, fluent API, jOOQL"/>
|
||||
|
||||
<link href='http://fonts.googleapis.com/css?family=Oxygen' rel='stylesheet' type='text/css'>
|
||||
<link href='http://fonts.googleapis.com/css?family=Special+Elite' rel='stylesheet' type='text/css'>
|
||||
<link href="/css/jooq.css" type="text/css" rel="stylesheet" />
|
||||
<link href="/js/prettify/prettify.css" type="text/css" rel="stylesheet" />
|
||||
<script type="text/javascript" src="/js/jquery.js"></script>
|
||||
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
|
||||
<script type="text/javascript" src="/js/prettify/prettify.js"></script>
|
||||
<script type="text/javascript" src="/js/prettify/lang-sql.js"></script>
|
||||
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$("a").filter("[href*='http']").filter(":not([href*='jooq.org'])").attr("target", "_blank");
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body onload="prettyPrint()">
|
||||
<div id="navigation">
|
||||
<div class="wrapper">
|
||||
|
||||
<div id="menu">
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/" title="jOOQ Home Page">Start</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/learn.php" title="Learn about jOOQ">Learn</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/download.php" title="Download jOOQ">Download</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/community.php" title="See who's behind jOOQ and contribute">Community</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/donate.php" title="Show some love to the jOOQ developer">Donate</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="header">
|
||||
<div class="wrapper">
|
||||
<table width="100%" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td width="700" valign="top">
|
||||
<h1>Error:<br/>408 Request Timed Out</h1></td>
|
||||
<td align="right" valign="top"><img src="/img/logo.png" alt="jOOQ Logo"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
<div class="wrapper">
|
||||
<p class="right">
|
||||
<div style="float: left; width: 400px">
|
||||
Copyright (c) 2009-2013 by <a href="http://blog.jooq.org" title="Lukas's Blog about Java, SQL, and jOOQ">Lukas Eder</a>.
|
||||
Distributed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" title="Apache 2.0 License">Apache 2.0 licence</a>
|
||||
</div>
|
||||
<div style="float: right; width: 400px">
|
||||
Want to see your brand here? <a href="mailto:lukas.eder@gmail.com" title="contact me">Contact me</a> to partner up with jOOQ
|
||||
</div>
|
||||
<br/>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: none">
|
||||
<img src="/img/logo.png" alt="The jOOQ Logo" title="jOOQ Logo"/>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,89 +0,0 @@
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>500 Internal Server Error</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
|
||||
<meta property="og:title" content="jOOQ" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="http://www.jooq.org" />
|
||||
<meta property="og:image" content="http://www.jooq.org/img/logo.png" />
|
||||
<meta property="og:site_name" content="jOOQ" />
|
||||
<meta property="fb:admins" content="649865547" />
|
||||
|
||||
<meta name="description" content="jOOQ, a fluent API for typesafe SQL query construction and execution."/>
|
||||
<meta name="author" content="Lukas Eder"/>
|
||||
<meta name="keywords" content="jOOQ, JDBC, database abstraction, source code generation, SQL, stored procedures, stored functions, UDT, UDF, typesafe, fluentAPI, fluent API, jOOQL"/>
|
||||
|
||||
<link href='http://fonts.googleapis.com/css?family=Oxygen' rel='stylesheet' type='text/css'>
|
||||
<link href='http://fonts.googleapis.com/css?family=Special+Elite' rel='stylesheet' type='text/css'>
|
||||
<link href="/css/jooq.css" type="text/css" rel="stylesheet" />
|
||||
<link href="/js/prettify/prettify.css" type="text/css" rel="stylesheet" />
|
||||
<script type="text/javascript" src="/js/jquery.js"></script>
|
||||
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
|
||||
<script type="text/javascript" src="/js/prettify/prettify.js"></script>
|
||||
<script type="text/javascript" src="/js/prettify/lang-sql.js"></script>
|
||||
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$("a").filter("[href*='http']").filter(":not([href*='jooq.org'])").attr("target", "_blank");
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body onload="prettyPrint()">
|
||||
<div id="navigation">
|
||||
<div class="wrapper">
|
||||
|
||||
<div id="menu">
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/" title="jOOQ Home Page">Start</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/learn.php" title="Learn about jOOQ">Learn</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/download.php" title="Download jOOQ">Download</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/community.php" title="See who's behind jOOQ and contribute">Community</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/donate.php" title="Show some love to the jOOQ developer">Donate</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="header">
|
||||
<div class="wrapper">
|
||||
<table width="100%" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td width="700" valign="top">
|
||||
<h1>Error:<br/>500 Internal Server Error</h1></td>
|
||||
<td align="right" valign="top"><img src="/img/logo.png" alt="jOOQ Logo"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
<div class="wrapper">
|
||||
<p class="right">
|
||||
<div style="float: left; width: 400px">
|
||||
Copyright (c) 2009-2013 by <a href="http://blog.jooq.org" title="Lukas's Blog about Java, SQL, and jOOQ">Lukas Eder</a>.
|
||||
Distributed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" title="Apache 2.0 License">Apache 2.0 licence</a>
|
||||
</div>
|
||||
<div style="float: right; width: 400px">
|
||||
Want to see your brand here? <a href="mailto:lukas.eder@gmail.com" title="contact me">Contact me</a> to partner up with jOOQ
|
||||
</div>
|
||||
<br/>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: none">
|
||||
<img src="/img/logo.png" alt="The jOOQ Logo" title="jOOQ Logo"/>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,89 +0,0 @@
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>503 Service Unavailable</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
|
||||
<meta property="og:title" content="jOOQ" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="http://www.jooq.org" />
|
||||
<meta property="og:image" content="http://www.jooq.org/img/logo.png" />
|
||||
<meta property="og:site_name" content="jOOQ" />
|
||||
<meta property="fb:admins" content="649865547" />
|
||||
|
||||
<meta name="description" content="jOOQ, a fluent API for typesafe SQL query construction and execution."/>
|
||||
<meta name="author" content="Lukas Eder"/>
|
||||
<meta name="keywords" content="jOOQ, JDBC, database abstraction, source code generation, SQL, stored procedures, stored functions, UDT, UDF, typesafe, fluentAPI, fluent API, jOOQL"/>
|
||||
|
||||
<link href='http://fonts.googleapis.com/css?family=Oxygen' rel='stylesheet' type='text/css'>
|
||||
<link href='http://fonts.googleapis.com/css?family=Special+Elite' rel='stylesheet' type='text/css'>
|
||||
<link href="/css/jooq.css" type="text/css" rel="stylesheet" />
|
||||
<link href="/js/prettify/prettify.css" type="text/css" rel="stylesheet" />
|
||||
<script type="text/javascript" src="/js/jquery.js"></script>
|
||||
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
|
||||
<script type="text/javascript" src="/js/prettify/prettify.js"></script>
|
||||
<script type="text/javascript" src="/js/prettify/lang-sql.js"></script>
|
||||
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$("a").filter("[href*='http']").filter(":not([href*='jooq.org'])").attr("target", "_blank");
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body onload="prettyPrint()">
|
||||
<div id="navigation">
|
||||
<div class="wrapper">
|
||||
|
||||
<div id="menu">
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/" title="jOOQ Home Page">Start</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/learn.php" title="Learn about jOOQ">Learn</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/download.php" title="Download jOOQ">Download</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/community.php" title="See who's behind jOOQ and contribute">Community</a>
|
||||
</div>
|
||||
<div class="navigation-item-left ">
|
||||
<a href="/donate.php" title="Show some love to the jOOQ developer">Donate</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="header">
|
||||
<div class="wrapper">
|
||||
<table width="100%" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td width="700" valign="top">
|
||||
<h1>Error:<br/>503 Service Unavailable</h1></td>
|
||||
<td align="right" valign="top"><img src="/img/logo.png" alt="jOOQ Logo"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
<div class="wrapper">
|
||||
<p class="right">
|
||||
<div style="float: left; width: 400px">
|
||||
Copyright (c) 2009-2013 by <a href="http://blog.jooq.org" title="Lukas's Blog about Java, SQL, and jOOQ">Lukas Eder</a>.
|
||||
Distributed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" title="Apache 2.0 License">Apache 2.0 licence</a>
|
||||
</div>
|
||||
<div style="float: right; width: 400px">
|
||||
Want to see your brand here? <a href="mailto:lukas.eder@gmail.com" title="contact me">Contact me</a> to partner up with jOOQ
|
||||
</div>
|
||||
<br/>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: none">
|
||||
<img src="/img/logo.png" alt="The jOOQ Logo" title="jOOQ Logo"/>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,453 +0,0 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Codes HTTP / HTTP Codes</TITLE>
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="#FFFFFF"><A NAME="Top">
|
||||
|
||||
<B>Codes</B> :
|
||||
<A HREF="#1xx">1xx</A>
|
||||
<A HREF="#2xx">2xx</A>
|
||||
<A HREF="#3xx">3xx</A>
|
||||
<A HREF="#4xx">4xx</A>
|
||||
<A HREF="#5xx">5xx</A>
|
||||
<BR><BR>
|
||||
|
||||
|
||||
<TABLE BGCOLOR="#FFFFCC" BORDER=1 CELLSPACING=0 CELLPADDING=6 WIDTH=100%>
|
||||
|
||||
<TR>
|
||||
|
||||
<TD COLSPAN=3 ALIGN=center BGCOLOR="#FFFFFF"><A HREF="#Top">*</A><A NAME="1xx"><B>1xx : Codes d'information / <I>Information codes</I></B></TD></TR><TR BGCOLOR="#FFFF88">
|
||||
<TD ALIGN=center>Code</TD>
|
||||
<TD ALIGN=center>Statut / <I>Status</I></TD>
|
||||
<TD ALIGN=center>Description / <I>Comment</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>100</B></TD>
|
||||
<TD><B>Continuer</B></TD>
|
||||
<TD><B>Attente de la suite de la requête.</B><BR>
|
||||
La partie initiale de la requête a bien été reçue et le client peut continuer avec la suite de cette requête.</TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Continue</B></I></TD>
|
||||
<TD><I><B>Waiting for the end part of the request.</B><BR>
|
||||
The initial part of the request has been received and the client may continue with its request.</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>101</B></TD>
|
||||
<TD><B>Changement de protocoles</B></TD>
|
||||
<TD><B>Le serveur accepte la requête du client de changer de protocole.</B><BR>
|
||||
Le client a demandé au serveur d'utiliser un autre protocole que celui actuellement utilisé, et le serveur accepte cette requête.</TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Switching Protocols</B></I></TD>
|
||||
<TD><I><B>The server is complying with a client request to switch protocols to the one specified in the Upgrade header field.</B><BR>
|
||||
The client asked the server to use another protocol than the one actually used, and the server complied this request.</I></TD>
|
||||
</TR><TR>
|
||||
|
||||
<TD COLSPAN=3 ALIGN=center BGCOLOR="#FFFFFF"><A HREF="#Top">*</A><A NAME="2xx"><B>2xx : Codes de succès / <I>Success codes</I></B></TD></TR><TR BGCOLOR="#FFFF88">
|
||||
<TD ALIGN=center>Code</TD>
|
||||
<TD ALIGN=center>Statut / <I>Status</I></TD>
|
||||
<TD ALIGN=center>Description / <I>Comment</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>200</B></TD>
|
||||
<TD><B>OK</B></TD>
|
||||
<TD><B>La requête HTTP a été traitée avec succès.</B><BR>
|
||||
L'information retournée avec la réponse dépend de la méthode utilisée dans la requête. Par exemple la réponse à une requête GET classiquement émise par un navigateur web sera la ressource demandée (c'est-à-dire une page HTML, une image, etc).</TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>OK</B></I></TD>
|
||||
<TD><I><B>The HTTP request has succeeded.</B><BR>
|
||||
The information returned with the response is dependent on the method used in the request. For example the response to a standard GET request issued by a web browser is the requested resource (i.e. an HTML page, an image, etc).</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>201</B></TD>
|
||||
<TD><B>Créé</B></TD>
|
||||
<TD><B>La requête a été correctement traitée et a résulté en la création d'une nouvelle ressource.</B><BR>
|
||||
Cette ressource peut être référencée par l'URI retournée dans le corps de la réponse, avec l'URL la plus précise pour la ressource indiquée dans l'en-tête du champ "Location".</TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Created</B></I></TD>
|
||||
<TD><I><B>The request has been fulfilled and resulted in a new resource being created.</B><BR>
|
||||
The newly created resource can be referenced by the URI(s) returned in the entity of the response, with the most specific URL for the resource given by a Location header field.</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>202</B></TD>
|
||||
<TD><B>Accepté</B></TD>
|
||||
<TD><B>La requête a été acceptée pour être traitée, mais son traitement peut ne pas avoir abouti.</B><BR>
|
||||
Ce code est utilisé en remplacement du 201 lorsque le traitement ne peut pas avoir lieu immédiatement, son résultat est donc indéterminé.</TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Accepted</B></I></TD>
|
||||
<TD><I><B>The request has been accepted for processing, but the processing has not been completed.</B><BR>
|
||||
This code is used instead of 201 when the processing of the request cannot be carried out immediately, leaving the result undetermined.</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>203</B></TD>
|
||||
<TD><B>Information non certifiée</B></TD>
|
||||
<TD><B>L'information retournée n'a pas été générée par le serveur HTTP mais par une autre source non authentifiée.</B><BR></TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Non-Authoritative Information</B></I></TD>
|
||||
<TD><I><B>Usually the preliminary information sent from a server to a browser comes directly from the server. If it does not, then this code might also be sent to indicate that information did not come from a known source.</B><BR></I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>204</B></TD>
|
||||
<TD><B>Pas de contenu</B></TD>
|
||||
<TD><B>Le serveur HTTP a correctement traité la requête mais il n'y a pas d'information à envoyer en retour.</B><BR>
|
||||
Cela peut par exemple se produire lorsqu'un fichier HTML ou le résultat d'un programme CGI-BIN est vide.</TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>No Content</B></I></TD>
|
||||
<TD><I><B>The request was accepted and filled but no new information is being sent back.</B><BR>
|
||||
The browser receiving this response should not change its screen display (although new, and changed, private header information may be sent).</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>205</B></TD>
|
||||
<TD><B>Contenu réinitialisé</B></TD>
|
||||
<TD><B>Le client doit remettre à zéro le formulaire utilisé dans cette transaction.</B><BR>
|
||||
Ce code est envoyé au logiciel de navigation quand il doit réinitialiser un formulaire généré dynamiquement par un CGI-BIN, par exemple.</TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Reset Content</B></I></TD>
|
||||
<TD><I><B>The browser should clear the form used for this transaction for additional input.</B><BR>
|
||||
Appropriate for data-entry CGI applications.</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>206</B></TD>
|
||||
<TD><B>Contenu partiel</B></TD>
|
||||
<TD><B>Le serveur retourne une partie seulement de la taille demandée.</B><BR>
|
||||
Ce code est utilisé lorsqu'une requête spécifiant une taille a été transmise.</TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Partial Content</B></I></TD>
|
||||
<TD><I><B>The server is returning partial data of the size requested.</B><BR>
|
||||
Used in response to a request specifying a Range header. The server must specify the range included in the response with the Content-Range header.</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD COLSPAN=3 ALIGN=center BGCOLOR="#FFFFFF"><A HREF="#Top">*</A><A NAME="3xx"><B>3xx : Codes de redirection / <I>Redirection codes</I></B></TD></TR><TR BGCOLOR="#FFFF88">
|
||||
<TD ALIGN=center>Code</TD>
|
||||
<TD ALIGN=center>Statut / <I>Status</I></TD>
|
||||
<TD ALIGN=center>Description / <I>Comment</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>300</B></TD>
|
||||
<TD><B>Choix multiples</B></TD>
|
||||
<TD><B>L'URI demandée concerne plus d'une ressource.</B><BR>
|
||||
Par exemple, l'URI concerne un document qui a été traduit en plusieurs langues. Le serveur doit retourner des informations indiquant comment choisir une ressource précise.</TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Multiple Choices</B></I></TD>
|
||||
<TD><I><B>The requested URI refers to more than one resource.</B><BR>
|
||||
For example, the URI could refer to a document that has been translated into many languages. The entity body returned by the server could have a list of more specific data about how to choose the correct resource.</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>301</B></TD>
|
||||
<TD><B>Changement d'adresse définitif</B></TD>
|
||||
<TD><B>La ressource demandée possède une nouvelle adresse (URI).</B><BR>
|
||||
Toute référence future à cette ressource doit être faite en utilisant l'une des URIs retournées dans la réponse. Le navigateur web doit normalement charger automatiquement la ressource demandée à sa nouvelle adresse.</TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Moved Permanently</B></I></TD>
|
||||
<TD><I><B>The requested resource has been assigned a new permanent address (URI).</B><BR>
|
||||
Any future references to this resource should be done using one of the returned URIs. Web browsers should automatically load the requested resource using its new address.</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>302</B></TD>
|
||||
<TD><B>Changement d'adresse temporaire</B></TD>
|
||||
<TD><B>La ressource demandée réside temporairement à une adresse (URI) différente.</B><BR>
|
||||
Cette redirection étant temporaire, le navigateur web doit continuer à utiliser l'URI originale pour les requêtes futures.</TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Moved Temporarily</B></I></TD>
|
||||
<TD><I><B>The requested resource resides temporarily under a different URI.</B><BR>
|
||||
Since the redirection may be altered on occasion, the client should continue to use the Request-URI for future requests.</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>303</B></TD>
|
||||
<TD><B>Voir ailleurs</B></TD>
|
||||
<TD><B>L'URI spécifié est disponible à un autre URI et doit être demandé par un GET.</B><BR></TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>See Other</B></I></TD>
|
||||
<TD><I><B>The requested URI can be found at a different URI (specified in the Location header) and should be retrieved by a GET on that resource.</B><BR></I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>304</B></TD>
|
||||
<TD><B>Non modifié</B></TD>
|
||||
<TD><B>Le navigateur web a effectué une requête GET conditionnelle et l'accès est autorisé, mais le document n'a pas été modifié.</B><BR>
|
||||
Cette réponse classique signifie que vous avez configuré votre navigateur pour utiliser un cache HTTP (proxy) dans lequel une copie du document demandé est déjà stockée. Le proxy a donc demandé au serveur si le document original a changé depuis, et a reçu cette réponse : il pourra ainsi utiliser la copie locale.</TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Not Modified</B></I></TD>
|
||||
<TD><I><B>The web browser has performed a conditional GET request and access is allowed, but the document has not been modified.</B><BR>
|
||||
This classic response means you have configured your web browser to use an HTTP cache (proxy) in which a copy of the requested document is already stored. The cache proxy thus asked the server if the original document was modified, and received this response, so it will use the local copy instead of loading it from the server.</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>305</B></TD>
|
||||
<TD><B>Utiliser le proxy</B></TD>
|
||||
<TD><B>L'URI spécifié doit être accédé en passant par le proxy.</B><BR></TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Use Proxy</B></I></TD>
|
||||
<TD><I><B>The requested URI must be accessed through the proxy in the Location header.</B><BR></I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD COLSPAN=3 ALIGN=center BGCOLOR="#FFFFFF"><A HREF="#Top">*</A><A NAME="4xx"><B>4xx : Erreur du client / <I>Client Error</I></B></TD></TR><TR BGCOLOR="#FFFF88">
|
||||
<TD ALIGN=center>Code</TD>
|
||||
<TD ALIGN=center>Statut / <I>Status</I></TD>
|
||||
<TD ALIGN=center>Description / <I>Comment</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>400</B></TD>
|
||||
<TD><B>Mauvaise requête</B></TD>
|
||||
<TD><B>La requête HTTP n'a pas pu être comprise par le serveur en raison d'une syntaxe erronée.</B><BR>
|
||||
Le problème peut provenir d'un navigateur web trop récent ou d'un serveur HTTP trop ancien.</TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Bad Request</B></I></TD>
|
||||
<TD><I><B>The HTTP request could not be understood by the server due to malformed syntax.</B><BR>
|
||||
The web browser may be too recent, or the HTTP server may be too old.</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>401</B></TD>
|
||||
<TD><B>Non autorisé</B></TD>
|
||||
<TD><B>La requête nécessite une identification de l'utilisateur.</B><BR>
|
||||
Concrètement, cela signifie que tout ou partie du serveur contacté est protégé par un mot de passe, qu'il faut indiquer au serveur pour pouvoir accéder à son contenu.</TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Unauthorized</B></I></TD>
|
||||
<TD><I><B>The request requires user authentication.</B><BR>
|
||||
This means that all or a part of the requested server is protected by a password that should be given to the server to allow access to its contents.</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>402</B></TD>
|
||||
<TD><B>Paiement exigé</B></TD>
|
||||
<TD><B>Ce code n'est pas encore mis en oeuvre dans le protocole HTTP.</B><BR></TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Payment Required</B></I></TD>
|
||||
<TD><I><B>This code is not yet implemented in HTTP.</B><BR></I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>403</B></TD>
|
||||
<TD><B>Interdit</B></TD>
|
||||
<TD><B>Le serveur HTTP a compris la requête, mais refuse de la traiter.</B><BR>
|
||||
Ce code est généralement utilisé lorsqu'un serveur ne souhaite pas indiquer pourquoi la requête a été rejetée, ou lorsqu'aucune autre réponse ne correspond (par exemple le serveur est un Intranet et seules les machines du réseau local sont autorisées à se connecter au serveur).</TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Forbidden</B></I></TD>
|
||||
<TD><I><B>The HTTP server understood the request, but is refusing to fulfill it.</B><BR>
|
||||
This status code is commonly used when the server does not wish to reveal exactly why the request has been refused, or when no other response is applicable (for example the server is an Intranet and only the LAN machines are authorized to connect).</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>404</B></TD>
|
||||
<TD><B>Non trouvé</B></TD>
|
||||
<TD><B>Le serveur n'a rien trouvé qui corresponde à l'adresse (URI) demandée.</B><BR>
|
||||
Cela signifie que l'URL que vous avez tapée ou cliquée est mauvaise ou obsolète et ne correspond à aucun document existant sur le serveur (vous pouvez essayez de supprimer progressivement les composants de l'URL en partant de la fin pour éventuellement retrouver un chemin d'accès existant).</TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Not Found</B></I></TD>
|
||||
<TD><I><B>The server has not found anything matching the requested address (URI).</B><BR>
|
||||
This means the URL you have typed or cliked on is wrong or obsolete and does not match any document existing on the server (you may try to gradualy remove the URL components from the right to the left to eventually retrieve an existing path).</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>405</B></TD>
|
||||
<TD><B>Méthode non autorisée</B></TD>
|
||||
<TD><B>Ce code indique que la méthode utilisée par le client n'est pas supportée pour cet URI.</B><BR></TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Method Not Allowed</B></I></TD>
|
||||
<TD><I><B>This code is given with the Allow header and indicates that the method used by the client is not supported for this URI.</B><BR></I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>406</B></TD>
|
||||
<TD><B>Aucun disponible</B></TD>
|
||||
<TD><B>L'adresse (URI) spécifiée existe, mais pas dans le format préféré du client.</B><BR>
|
||||
Le serveur indique en retour le langage et les types d'encodages disponibles pour cette adresse.</TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Not Acceptable</B></I></TD>
|
||||
<TD><I><B>The URI specified by the client exists, but not in a format preferred by the client.</B><BR>
|
||||
Along with this code, the server provides the Content-Language, Content-Encoding, and Content-Type headers.</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>407</B></TD>
|
||||
<TD><B>Authentification proxy exigée</B></TD>
|
||||
<TD><B>Le serveur proxy exige une authentification du client avant de transmettre la requête.</B><BR></TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Proxy Authentication Required</B></I></TD>
|
||||
<TD><I><B>The proxy server needs to authorize the request before forwarding it.</B><BR></I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>408</B></TD>
|
||||
<TD><B>Requête hors-délai</B></TD>
|
||||
<TD><B>Le client n'a pas présenté une requête complète pendant le délai maximal qui lui était imparti, et le serveur a abandonné la connexion.</B><BR></TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Request Time-out</B></I></TD>
|
||||
<TD><I><B>This response code means the client did not produce a full request within some predetermined time (usually specified in the server's configuration), and the server is disconnecting the network connection.</B><BR></I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>409</B></TD>
|
||||
<TD><B>Conflit</B></TD>
|
||||
<TD><B>La requête entre en conflit avec une autre requête ou avec la configuration du serveur.</B><BR>
|
||||
Des informations sur les raisons de ce conflit doivent être indiquée en retour.</TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Conflict</B></I></TD>
|
||||
<TD><I><B>This code indicates that the request conflicts with another request or with the server's configuration.</B><BR>
|
||||
Information about the conflict should be returned in the data portion of the reply.</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>410</B></TD>
|
||||
<TD><B>Parti</B></TD>
|
||||
<TD><B>L'adresse (URI) demandée n'existe plus et a été définitivement supprimée du serveur.</B><BR></TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Gone</B></I></TD>
|
||||
<TD><I><B>This code indicates that the requested URI no longer exists and has been permanently removed from the server.</B><BR></I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>411</B></TD>
|
||||
<TD><B>Longueur exigée</B></TD>
|
||||
<TD><B>Le serveur a besoin de connaître la taille de cette requête pour pouvoir y répondre.</B><BR></TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Length Required</B></I></TD>
|
||||
<TD><I><B>The server will not accept the request without a Content-Length header supplied in the request.</B><BR></I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>412</B></TD>
|
||||
<TD><B>Précondition échouée</B></TD>
|
||||
<TD><B>Les conditions spécifiées dans la requête ne sont pas remplies.</B><BR></TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Precondition Failed</B></I></TD>
|
||||
<TD><I><B>The condition specified by one or more If... headers in the request evaluated to false.</B><BR></I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>413</B></TD>
|
||||
<TD><B>Corps de requête trop grand</B></TD>
|
||||
<TD><B>Le serveur ne peut traiter la requête car la taille de son contenu est trop importante.</B><BR></TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Request Entity Too Large</B></I></TD>
|
||||
<TD><I><B>The server will not process the request because its entity body is too large.</B><BR></I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>414</B></TD>
|
||||
<TD><B>URI trop long</B></TD>
|
||||
<TD><B>Le serveur ne peut traiter la requête car la taille de l'objet (URI) a retourner est trop importante.</B><BR></TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Request-URI Too Long</B></I></TD>
|
||||
<TD><I><B>The server will not process the request because its request URI is too large.</B><BR></I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>415</B></TD>
|
||||
<TD><B>Format non supporté</B></TD>
|
||||
<TD><B>Le serveur ne peut traiter la requête car son contenu est écrit dans un format non supporté.</B><BR></TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Unsupported Media Type</B></I></TD>
|
||||
<TD><I><B>The server will not process the request because its entity body is in an unsupported format.</B><BR></I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>416</B></TD>
|
||||
<TD><B>Plage demandée invalide</B></TD>
|
||||
<TD><B>Le sous-ensemble de recherche spécifié est invalide.</B><BR></TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Requested range unsatifiable</B></I></TD>
|
||||
<TD><I><B>The server will not process the request because the requested range is invalid.</B><BR></I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>417</B></TD>
|
||||
<TD><B>Comportement erroné</B></TD>
|
||||
<TD><B>Le comportement prévu pour le serveur n'est pas supporté.</B><BR></TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Expectation failed</B></I></TD>
|
||||
<TD><I><B>The behavior expected fot the server is not supported.</B><BR></I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD COLSPAN=3 ALIGN=center BGCOLOR="#FFFFFF"><A HREF="#Top">*</A><A NAME="5xx"><B>5xx : Erreur du serveur / <I>Server Error</I></B></TD></TR><TR BGCOLOR="#FFFF88">
|
||||
<TD ALIGN=center>Code</TD>
|
||||
<TD ALIGN=center>Statut / <I>Status</I></TD>
|
||||
<TD ALIGN=center>Description / <I>Comment</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>500</B></TD>
|
||||
<TD><B>Erreur interne du serveur</B></TD>
|
||||
<TD><B>Le serveur HTTP a rencontré une condition inattendue qui l'a empêché de traiter la requête.</B><BR>
|
||||
Cette erreur peut par exemple être le résultat d'une mauvaise configuration du serveur, ou d'une ressource épuisée ou refusée au serveur sur la machine hôte.</TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Internal Server Error</B></I></TD>
|
||||
<TD><I><B>The HTTP server encountered an unexpected condition which prevented it from fulfilling the request.</B><BR>
|
||||
For example this error can be caused by a serveur misconfiguration, or a resource exhausted or denied to the server on the host machine.</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>501</B></TD>
|
||||
<TD><B>Non mis en oeuvre</B></TD>
|
||||
<TD><B>Le serveur HTTP ne supporte pas la fonctionnalité nécessaire pour traiter la requête.</B><BR>
|
||||
C'est la réponse émise lorsque le serveur ne reconnaît pas la méthode indiquée dans la requête et n'est capable de la mettre en oeuvre pour aucune ressource (soit le navigateur web est trop récent, soit le serveur HTTP est trop ancien).</TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Not Implemented</B></I></TD>
|
||||
<TD><I><B>The HTTP server does not support the functionality required to fulfill the request.</B><BR>
|
||||
This is the appropriate response when the server does not recognize the request method and is not capable of supporting it for any resource (either the web browser is too recent, or the HTTP server is too old).</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>502</B></TD>
|
||||
<TD><B>Mauvais intermédiaire</B></TD>
|
||||
<TD><B>Le serveur intermédiaire a fourni une réponse invalide.</B><BR>
|
||||
Le serveur HTTP a agi en tant qu'intermédiaire (passerelle ou proxy) avec un autre serveur, et a reçu de ce dernier une réponse invalide en essayant de traiter la requête.</TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Bad Gateway</B></I></TD>
|
||||
<TD><I><B>The gateway server returned an invalid response.</B><BR>
|
||||
The HTTP server, while acting as a gateway or proxy, received an invalid response from the upstream server it accessed in attempting to fulfill the request.</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>503</B></TD>
|
||||
<TD><B>Service indisponible</B></TD>
|
||||
<TD><B>Le serveur HTTP est actuellement incapable de traiter la requête en raison d'une surcharge temporaire ou d'une opération de maintenance.</B><BR>
|
||||
Cela sous-entend l'existence d'une condition temporaire qui sera levée après un certain délai.</TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Service Unavailable</B></I></TD>
|
||||
<TD><I><B>The HTTP server is currently unable to handle the request due to a temporary overloading or maintenance of the server.</B><BR>
|
||||
The implication is that this is a temporary condition which will be alleviated after some delay.</I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>504</B></TD>
|
||||
<TD><B>Intermédiaire hors-délai</B></TD>
|
||||
<TD><B>Cette réponse est identique au code 408 (requête hors-délai), mais ici c'est un proxy ou un autre intermédiaire qui a mis trop longtemps à répondre.</B><BR></TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>Gateway Time-out</B></I></TD>
|
||||
<TD><I><B>This response is like 408 (Request Time-out) except that a gateway or proxy has timed out.</B><BR></I></TD>
|
||||
|
||||
</TR><TR>
|
||||
|
||||
<TD ROWSPAN=2 ALIGN=center><B>505</B></TD>
|
||||
<TD><B>Version HTTP non supportée</B></TD>
|
||||
<TD><B>La version du protocole HTTP utilisée dans cette requête n'est pas (ou plus) supportée par le serveur.</B><BR></TD>
|
||||
</TR><TR>
|
||||
<TD><I><B>HTTP Version not supported</B></I></TD>
|
||||
<TD><I><B>The server will not support the HTTP protocol version used in the request.</B><BR></I></TD>
|
||||
|
||||
</TR>
|
||||
|
||||
</TABLE>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1,25 +0,0 @@
|
||||
<?php
|
||||
require 'frame.php';
|
||||
function getH1() {
|
||||
return 'End User License Agreement';
|
||||
}
|
||||
function getActiveMenu() {
|
||||
return "";
|
||||
}
|
||||
function printContent() {
|
||||
global $root;
|
||||
global $minorVersion;
|
||||
global $version;
|
||||
?>
|
||||
|
||||
<h2>End User License Agreement</h2>
|
||||
<p>
|
||||
The jOOQ Commercial License is not yet effective. You may thus not yet use jOOQ using the Commercial License.
|
||||
</p>
|
||||
<p>
|
||||
Come back soon to learn how to commercially license jOOQ.
|
||||
</p>
|
||||
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
Before Width: | Height: | Size: 4.2 KiB |
@ -1,367 +0,0 @@
|
||||
<?php
|
||||
require 'conf.php';
|
||||
function manualHeader($isSingle, $forVersion) {
|
||||
global $minorVersion;
|
||||
$singleSuffix = ($isSingle ? '-single-page' : '');
|
||||
|
||||
return '<p>This version of the manual is outdated. For the latest version, follow this link: ' .
|
||||
'<a href="http://www.jooq.org/doc/' . $minorVersion . '/manual' . $singleSuffix .
|
||||
'">http://www.jooq.org/doc/' . $minorVersion . '/manual' . $singleSuffix .
|
||||
'</a>.</p>';
|
||||
}
|
||||
|
||||
?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title><?php
|
||||
if (isset($home)) {
|
||||
print "jOOQ is a fluent API for typesafe SQL query construction and execution";
|
||||
} else {
|
||||
print getH1();
|
||||
}
|
||||
?></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
|
||||
<meta property="og:title" content="jOOQ" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="http://www.jooq.org" />
|
||||
<meta property="og:image" content="http://www.jooq.org/img/logo.png" />
|
||||
<meta property="og:site_name" content="jOOQ" />
|
||||
<meta property="fb:admins" content="649865547" />
|
||||
|
||||
<meta name="description" content="jOOQ, a fluent API for typesafe SQL query construction and execution."/>
|
||||
<meta name="author" content="Lukas Eder"/>
|
||||
<meta name="keywords" content="jOOQ, JDBC, database abstraction, source code generation, SQL, stored procedures, stored functions, UDT, UDF, typesafe, fluentAPI, fluent API, jOOQL"/>
|
||||
|
||||
<link href='http://fonts.googleapis.com/css?family=Oxygen' rel='stylesheet' type='text/css'>
|
||||
<link href='http://fonts.googleapis.com/css?family=Special+Elite' rel='stylesheet' type='text/css'>
|
||||
<link href="<?=$root?>/css/jooq.css" type="text/css" rel="stylesheet" />
|
||||
<link href="<?=$root?>/css/jquery.modal.css" type="text/css" rel="stylesheet" />
|
||||
<link href="<?=$root?>/js/prettify/prettify.css" type="text/css" rel="stylesheet" />
|
||||
<script type="text/javascript" src="<?=$root?>/js/jquery.js"></script>
|
||||
<script type="text/javascript" src="<?=$root?>/js/jquery.modal.js"></script>
|
||||
<script type="text/javascript" src="<?=$root?>/js/jquery.cookie.js"></script>
|
||||
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
|
||||
<script type="text/javascript" src="<?=$root?>/js/prettify/prettify.js"></script>
|
||||
<script type="text/javascript" src="<?=$root?>/js/prettify/lang-sql.js"></script>
|
||||
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
|
||||
|
||||
<?php if (strpos($_SERVER['HTTP_HOST'], 'localhost') === false) { ?>
|
||||
<script type="text/javascript">
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', 'UA-30716479-1']);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
|
||||
</script>
|
||||
<?php } ?>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
var $registration = $('#registration'),
|
||||
track = function(url) {
|
||||
var pageTracker;
|
||||
|
||||
try {
|
||||
pageTracker = _gat._getTracker("UA-30716479-1");
|
||||
|
||||
if (('' + url).substring(0, 4) === 'http') {
|
||||
pageTracker._trackPageview('/external/' + url.replace(/^https?\:\/\//i, ""));
|
||||
}
|
||||
else {
|
||||
pageTracker._trackPageview('/event/' + url);
|
||||
}
|
||||
}
|
||||
catch (ignore) {}
|
||||
},
|
||||
registration = function(forceEmail, forceSurvey) {
|
||||
var $email = $('#email'),
|
||||
$save = $('.save'),
|
||||
$survey = $('#survey'),
|
||||
$noThanks = $('.no-thanks'),
|
||||
fade = function($element) {
|
||||
var heightBefore = $element.css('height'),
|
||||
heightAfter;
|
||||
|
||||
$element.html("Thank you!");
|
||||
heightAfter = $element.css('height');
|
||||
|
||||
$element.css('height', heightBefore);
|
||||
$element.animate({
|
||||
height: heightAfter
|
||||
}, {
|
||||
duration: 500,
|
||||
complete: function() {
|
||||
$element.fadeOut(1000, function() {
|
||||
if (!$email.is(':visible') && !$survey.is(':visible')) {
|
||||
$.modal.close();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$save.click(function() {
|
||||
$.cookie("jooq-registration-email", $('input[name=email]').val());
|
||||
track('email/clicked');
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: '<?=$root?>/registration-email-save',
|
||||
data: $("#registration-email-form").serialize(),
|
||||
success: function(data, textStatus, jqXHR) {
|
||||
fade($email);
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$survey.click(function() {
|
||||
$.cookie("jooq-registration-survey", "clicked");
|
||||
track('survey/clicked');
|
||||
fade($survey);
|
||||
window.open('http://srvy.it/15yxTuO');
|
||||
});
|
||||
|
||||
$noThanks.click(function() {
|
||||
var $this = $(this);
|
||||
$.cookie($this.data("cookie"), "no-thanks");
|
||||
track($this.data("fade") + '/no-thanks');
|
||||
fade($('#' + $this.data("fade")));
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
if ($.cookie("jooq-registration-email") && !forceEmail) {
|
||||
$email.hide();
|
||||
}
|
||||
else if (forceEmail) {
|
||||
$email.show();
|
||||
}
|
||||
|
||||
if ($.cookie("jooq-registration-survey") && !forceSurvey) {
|
||||
$survey.hide();
|
||||
}
|
||||
else if (forceSurvey) {
|
||||
$survey.show();
|
||||
}
|
||||
|
||||
$registration.modal();
|
||||
};
|
||||
|
||||
$("a").filter("[href*='http']")
|
||||
.filter(":not([href*='jooq.org'])")
|
||||
.click(function() {
|
||||
var $this = $(this);
|
||||
$this.attr("target", "_blank");
|
||||
track($(this).attr("href"));
|
||||
});
|
||||
|
||||
$("#newsletterbutton").click(function() {
|
||||
registration(true, true);
|
||||
});
|
||||
|
||||
if ($registration && document.URL.indexOf("download") >= 0) {
|
||||
if (!$.cookie("jooq-registration-email") ||
|
||||
!$.cookie("jooq-registration-survey")) {
|
||||
|
||||
setTimeout(registration, 200);
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body onload="prettyPrint()">
|
||||
<div id="navigation">
|
||||
<div class="wrapper">
|
||||
<div id="tweets">
|
||||
<?php
|
||||
/*
|
||||
<div class="tweet-item">
|
||||
<a href="http://twitter.com/share"
|
||||
class="twitter-share-button"
|
||||
data-url="http://www.jooq.org"
|
||||
data-text="#jOOQ - Embedding #typesafe #SQL in #Java"
|
||||
data-count="horizontal" data-via="JavaOOQ">Tweet</a>
|
||||
<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
|
||||
|
||||
</div>
|
||||
<div class="tweet-item">
|
||||
<g:plusone size="medium" href="http://www.jooq.org"></g:plusone>
|
||||
|
||||
</div>
|
||||
<div class="tweet-item">
|
||||
<div id="fb-root"></div>
|
||||
<script>(function(d, s, id) {
|
||||
var js, fjs = d.getElementsByTagName(s)[0];
|
||||
if (d.getElementById(id)) {return;}
|
||||
js = d.createElement(s); js.id = id;
|
||||
js.src = "//connect.facebook.net/en_US/all.js#appId=232666253447462&xfbml=1";
|
||||
fjs.parentNode.insertBefore(js, fjs);
|
||||
}(document, 'script', 'facebook-jssdk'));</script>
|
||||
<div class="fb-like"
|
||||
data-send="false"
|
||||
data-href="http://www.jooq.org"
|
||||
data-layout="button_count"
|
||||
data-width="450"
|
||||
data-show-faces="true"
|
||||
data-font="verdana"></div>
|
||||
|
||||
</div>
|
||||
<div class="tweet-item">
|
||||
<script src="//platform.linkedin.com/in.js" type="text/javascript"></script>
|
||||
<script type="IN/Share" data-url="http://www.jooq.org" data-counter="right"></script>
|
||||
</div>
|
||||
*/
|
||||
?>
|
||||
|
||||
<div class="tweet-item">
|
||||
<a href="https://plus.google.com/share?url=http://www.jooq.org" target="_blank">
|
||||
<img src="<?=$root?>/img/social-g+.png" width="37" height="27" alt="Share jOOQ on Google+" title="Share jOOQ on Google+"/></a>
|
||||
</div>
|
||||
<div class="tweet-item">
|
||||
<a href="http://www.stumbleupon.com/submit?url=http://www.jooq.org" target="_blank">
|
||||
<img src="<?=$root?>/img/social-su.png" width="37" height="27" alt="Share jOOQ on StumbleUpon" title="Share jOOQ on StumbleUpon"/></a>
|
||||
</div>
|
||||
<div class="tweet-item">
|
||||
<a href="http://twitter.com/share?text=%23jOOQ,+the+best+way+to+write+%23SQL+in+%23Java" target="_blank">
|
||||
<img src="<?=$root?>/img/social-tw.png" width="37" height="27" alt="Share jOOQ on Twitter" title="Share jOOQ on Twitter"/></a>
|
||||
</div>
|
||||
<div class="tweet-item">
|
||||
<a href="http://www.linkedin.com/shareArticle?mini=true&url=http://www.jooq.org" target="_blank">
|
||||
<img src="<?=$root?>/img/social-in.png" width="37" height="27" alt="Share jOOQ on LinkedIn" title="Share jOOQ on LinkedIn"/></a>
|
||||
</div>
|
||||
<div class="tweet-item">
|
||||
<a href="http://www.facebook.com/sharer.php?u=http://www.jooq.org" target="_blank">
|
||||
<img src="<?=$root?>/img/social-fb.png" width="37" height="27" alt="Share jOOQ on Facebook" title="Share jOOQ on Facebook"/></a>
|
||||
</div>
|
||||
<div class="tweet-item">
|
||||
<a id="newsletterbutton" href="#">
|
||||
<img src="<?=$root?>/img/social-nl.png" width="37" height="27" alt="Sign up for the jOOQ newsletter" title="Sign up for the jOOQ newsletter"/></a>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
/*
|
||||
<div class="tweet-item">
|
||||
<a href="http://github.com/jOOQ/jOOQ" target="_blank">
|
||||
<img src="<?=$root?>/img/social-gh.png" width="37" height="27" alt="See jOOQ on GitHub" title="See jOOQ on GitHub" style="background-color: #111"/></a>
|
||||
</div>
|
||||
<div class="tweet-item">
|
||||
<a href="http://stackoverflow.com/questions/tagged/jooq" target="_blank">
|
||||
<img src="<?=$root?>/img/social-so.png" width="37" height="27" alt="See jOOQ on Stack Overflow" title="See jOOQ on Stack Overflow" style="background-color: #eee"/></a>
|
||||
</div>
|
||||
*/
|
||||
?>
|
||||
</div>
|
||||
|
||||
<div id="menu">
|
||||
<?php
|
||||
$menu = getActiveMenu();
|
||||
?>
|
||||
<div class="navigation-item-left <?php if ($menu == 'home') print 'navigation-item-active'?>">
|
||||
<a href="<?=$root?>/" title="jOOQ Home Page">Start</a>
|
||||
</div>
|
||||
<div class="navigation-item-left <?php if ($menu == 'learn') print 'navigation-item-active'?>">
|
||||
<a href="<?=$root?>/learn" title="Learn about jOOQ">Learn</a>
|
||||
</div>
|
||||
<div class="navigation-item-left <?php if ($menu == 'download') print 'navigation-item-active'?>">
|
||||
<a href="<?=$root?>/download" title="Download jOOQ">Download</a>
|
||||
</div>
|
||||
<div class="navigation-item-left <?php if ($menu == 'community') print 'navigation-item-active'?>">
|
||||
<a href="<?=$root?>/community" title="See who's behind jOOQ and contribute">Community</a>
|
||||
</div>
|
||||
<div class="navigation-item-left <?php if ($menu == 'news') print 'navigation-item-active'?>">
|
||||
<a href="<?=$root?>/news" title="What's new around jOOQ">News</a>
|
||||
</div>
|
||||
<div class="navigation-item-left <?php if ($menu == 'donate') print 'navigation-item-active'?>">
|
||||
<a href="<?=$root?>/donate" title="Show some love to the jOOQ developer">Donate</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="header">
|
||||
<div class="wrapper">
|
||||
<table width="100%" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td width="700" valign="top">
|
||||
<h1><?php print getH1(); ?></h1></td>
|
||||
<td align="right" valign="top"><img src="<?=$root?>/img/logo.png" alt="jOOQ Logo"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<div class="wrapper">
|
||||
<?php
|
||||
printContent();
|
||||
?>
|
||||
<br/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
<div class="wrapper">
|
||||
<p class="right">
|
||||
<div style="float: left; width: 400px">
|
||||
Copyright (c) 2009-<?=date('Y')?> by <a href="http://blog.jooq.org" title="Lukas's Blog about Java, SQL, and jOOQ">Lukas Eder</a>.
|
||||
Distributed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" title="Apache 2.0 License">Apache 2.0 licence</a>
|
||||
</div>
|
||||
<div style="float: right; width: 400px">
|
||||
Want to see your brand here? <a href="mailto:lukas.eder@gmail.com" title="contact me">Contact me</a> to partner up with jOOQ
|
||||
</div>
|
||||
<br/>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
<a href="https://github.com/jOOQ/jOOQ"> <img
|
||||
alt="Fork me on GitHub" src="<?=$root?>/img/forkme.png"
|
||||
style="position: absolute; top: 0; right: 0; border: 0;"/> </a>
|
||||
-->
|
||||
<div style="display: none">
|
||||
<img src="/img/logo.png" alt="The jOOQ Logo" title="jOOQ Logo"/>
|
||||
</div>
|
||||
|
||||
<div id="registration" style="display: none; width: 800px">
|
||||
<div id="email">
|
||||
<h3>Tell us a little bit about yourself and join our newsletter</h3>
|
||||
<sup>We will keep this information strictly confidential</sup>
|
||||
|
||||
<?php require 'registration-email.php'; ?>
|
||||
</div>
|
||||
<div id="survey">
|
||||
<h3>Help us understand your needs by completing this survey</h3>
|
||||
<div class="row">
|
||||
<div class="col col-3">
|
||||
jOOQ has been the leading Java Open Source SQL building tool for the last three years. Feedback on social media such as Facebook, Twitter, reddit, Stack Overflow has been overwhelmingly positive.
|
||||
</div>
|
||||
<div class="col col-3">
|
||||
You can influence jOOQ's future in the professional OSS world. By completing this survey, you help us take the right decisions to provide you with an even better Java / SQL integration in the future. All of the provided information will be kept strictly confidential.
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col col-1"> </div>
|
||||
<div class="col col-1">
|
||||
<button id="survey">
|
||||
Complete the survey
|
||||
</button>
|
||||
</div>
|
||||
<div class="col col-1">
|
||||
<button class="no-thanks" data-cookie="jooq-registration-survey" data-fade="survey">
|
||||
No thanks
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
jOOQ-website/img/.gitignore
vendored
@ -1 +0,0 @@
|
||||
/Thumbs.db
|
||||
|
Before Width: | Height: | Size: 102 KiB |
|
Before Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 6.9 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 7.9 KiB |
|
Before Width: | Height: | Size: 700 B |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 6.7 KiB |
|
Before Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 947 B |
|
Before Width: | Height: | Size: 846 KiB |
|
Before Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 305 KiB |
|
Before Width: | Height: | Size: 99 KiB |
|
Before Width: | Height: | Size: 427 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 841 B |
|
Before Width: | Height: | Size: 907 B |
|
Before Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 40 KiB |
@ -1,38 +0,0 @@
|
||||
Copyright (c) 2009-2013, Data Geekery GmbH (http://www.datageekery.com)
|
||||
All rights reserved.
|
||||
|
||||
This work is dual-licensed
|
||||
- under the Apache Software License 2.0 (the "ASL")
|
||||
- under the jOOQ License and Maintenance Agreement (the "jOOQ License")
|
||||
=============================================================================
|
||||
You may choose which license applies to you:
|
||||
|
||||
- If you're using this work with Open Source databases, you may choose
|
||||
either ASL or jOOQ License.
|
||||
- If you're using this work with at least one commercial database, you must
|
||||
choose jOOQ License
|
||||
|
||||
For more information, please visit http://www.jooq.org/licenses
|
||||
|
||||
Apache Software License 2.0:
|
||||
-----------------------------------------------------------------------------
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
jOOQ License and Maintenance Agreement:
|
||||
-----------------------------------------------------------------------------
|
||||
Data Geekery grants the Customer the non-exclusive, timely limited and
|
||||
non-transferable license to install and use the Software under the terms of
|
||||
the jOOQ License and Maintenance Agreement.
|
||||
|
||||
This library is distributed with a LIMITED WARRANTY. See the jOOQ License
|
||||
and Maintenance Agreement for more details: http://www.jooq.org/licensing
|
||||